1

そのため、GNURadio プロジェクトでは、PSIP データを多重化した MPEG-2 ビデオをテレビに送信しています。上記のデータとビデオの実際の受け渡しは問題ありませんが、ビデオは適切にデコードされません。ほとんどが空白で、至る所でブロックが点滅しており、動きの速いシーンでは「ガベージ」が多くなっています。ほとんどが黒で、「ブロック」がランダムに現れたり消えたりすることを除けば、このような感じです。このように見えるはずです。

テスト用にミキサーに追加する前に、videtestsrc を使用しています。avconv を試しましたが、何らかの理由でこの問題は発生しません。

以下はパイプラインです。

VIDEOFORMATIN='video/x-raw, format=UYVY, width=1920, height=1080, framerate=60/1, interlaced='true''
gst-launch-1.0 -v videotestsrc do-timestamp=true is-live=true ! $VIDEOFORMATIN \
! videoconvert ! queue ! \
avenc_mpeg2video bitrate=15000000 rc-max-rate=17000000 rc-min-rate=14000000 rc-buffer-size=300000 \
rc-buffer-aggressivity=0.25 ! \
filesink location=video.mpeg

mpv、SMPlater で正常にレンダリングされ、TSReader でビデオを再生できますが、mpv のコマンド出力に表示されるエラーは"

"[libav] NULL: start time is not set in estimate_timings_from_pts"

と...

"No PTS found! Making something up"

何が起こっているのでしょうか?ライブ ソースの場合、適切な PTS/DTS 値を書き込むにはどうすればよいですか? はい、MPEG-2 と gstreamer を使用する必要があります。

4

2 に答える 2

0

お気づきのように、デコーダーにとって不可欠なタイムスタンプである PTS/DTS 値が欠落しています。これは、いつフレームをデコードして提示するかを示します。通常、多重化操作中に行われるため、手動で生成することはできないと思います。

それらをエミュレートすることに成功したようですmpv。これが、きれいなレンダリングが得られる理由ですが、明らかにテレビではできません。

で多重化しようとしましたffmpegか?

于 2014-07-30T15:20:36.570 に答える