私はh264でエンコードされたビデオを再生しようとしましたが、matroskamuxで多重化しましたが、実現できません。私は組み込みプラットフォーム、iMX6です。Gstreamer:mastroskamuxエラー:リンクされていません
GST-だせと私のパイプライン工事:
gst-launch-1.0 filesrc location=video.mkv ! matroskademux ! h264parse ! imxvpudec ! imxipuvideosink
私はCでそれを作成したが、それは動作しません。
rep->pipeline = gst_pipeline_new("pipeline");
rep->src = gst_element_factory_make("filesrc","source0");
rep->demux = gst_element_factory_make("matroskademux","demux0");
rep->queue = gst_element_factory_make("queue2","queue0");
rep->parser = gst_element_factory_make("h264parse","parser0");
rep->decoder = gst_element_factory_make("imxvpudec","dec0");
rep->sink = gst_element_factory_make("imxipuvideosink","sink0");
gst_bin_add_many (GST_BIN(rep->pipeline), rep->src, rep->demux, rep->queue, rep->parser, rep->decoder,rep->sink, NULL);
g_object_set(rep->src, "location", "video.mkv", NULL);
g_object_set(rep->sink, "use-vsync", TRUE, NULL);
gst_element_link_many(rep->src, rep->demux, rep->queue, rep->parser, rep->decoder, rep->sink, NULL);
g_print("start pipeline\n");
gst_element_set_state (rep->pipeline, GST_STATE_PLAYING);
g_main_loop_run (loop);
ビデオが表示されず、アプリケーションがスタックしている:私は、私はすべての要素を含む構造rep
を使用して、エラー処理を削除しました。 = 4 GST_DEBUGで、私はデバッグの多くを得るが、最後の行に:それは「時々」ソースパッドを持っているので、
0:00:00.168590667 577 0xe24c0 WARN matroskademux matroska-demux.c:4500:gst_matroska_demux_loop:<demux0> error: stream stopped, reason not-linked
0:00:00.168777333 577 0xe24c0 INFO GST_ERROR_SYSTEM gstelement.c:1835:gst_element_message_full:<demux0> posting message: GStreamer encountered a general stream error.
0:00:00.169084667 577 0xe24c0 INFO GST_ERROR_SYSTEM gstelement.c:1858:gst_element_message_full:<demux0> posted error message: GStreamer encountered a general stream error.
0:00:00.169268000 577 0xe24c0 INFO task gsttask.c:300:gst_task_func:<demux0:sink> Task going to paused
私は、デマルチプレクサのパッドのリンクを強制しようとしました。
私はそれが動作するように進める方法がわかりません。 助けてくれてありがとう。
EDIT: ログファイルhere。 リンクの問題です。解決方法はわかりません。
おそらくキャップが一致しません。多分、マトスカにはもっと多くのトラックがあるでしょうか? GST_DEBUG = 5を試して、ログをファイルにリダイレクトしてください。何が起こっているのかを説明するかもしれない多くのものがある。私はログを調べることができます。 – peper0
@ peper0答えをくれてありがとう、私はログで私の投稿を編集しました。 – PierreOlivier
あなたが記録した実行中に正確にあなたのパイプラインは何ですか? [編集]申し訳ありませんが、私はそれがgst-launchからのログだと思いました。今すぐあなたが添付したコードからのものです。 – peper0