2

特別なファイル形式を記録して再生するために、GStreamerパイプライン( v 1.0 )を作成しようとしています。

記録の目的で、次のパイプラインを使用します。

gst-launch-1.0 videotestsrc ! video/x-raw-yuv, format=\(fourcc\)I420,  width=640, height=480 ! videoconvert ! x264enc byte-stream=1 ! queue ! appsink

appsinkで( new_sample()コールバックを使用)、圧縮メソッドを使用してH264ストリームを圧縮し、最後に出力ファイルに保存します。

次のパイプラインを使用して、記録されたファイルを再生します。

gst-launch-1.0 appsrc ! video/x-h264 ! avdec_h264 ! autovideosink

appsrcで、H264ストリームを解凍し、 appsrcバッファーに送信します(push-bufferを使用)。各バッファのサイズは4095です。

残念ながら、GStreamerは2つのバッファをプッシュした後、次のデバッグメッセージを出力します。

エラー:内部データフローエラー。

問題を解決する方法はありますか?

4

1 に答える 1

3
  1. デコーダーの前にlegacyh264parseまたはh264parse(gstコンポーネントのバージョンに応じて)を追加します。フルフレームをデコーダーに送信できる必要があります。

  2. avdec_h264を投稿すると、ビデオ形式を表示要件に変換できるようにffmpegcolorspaceがあると便利です。

于 2012-10-06T08:37:31.743 に答える