問題タブ [mpeg-2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - ビットマップ ファイルから .sub (vobsub sutitle sub/idx) ファイルを作成する方法
いくつかのビットマップ ファイル (jpeg、png、...) があり、これらのビットマップ ファイルを pes ストリーム (mpeg-2 形式) に結合する C++ プログラムを作成し、サブ ファイル (.sub/.idx: vobsub) を作成したいと考えています。字幕ファイル)。
ヒントを教えてください。
ありがとう
frame - MPEG-2シーク、どこから始めますか?
MPEG-2ファイル内の任意のフレームを検索できるようにしたいと思います(DVDから、MPEG-2プログラムストリームと呼ばれていると思います)。これまで私はこれらのフレームにアクセスするためにOpenCV2.1を使用していましたが、それはフレームごとにのみ機能します(フォワードシークのみ)。後でOpenCV2.3.1をインストールしたとき、その可能性は失われました。つまり、AVIに限定されていました。とにかく、OpenCVなしでやりたいです。私はなんとかキーフレーム(私が思うに)またはそういうフレーム(例えば12番目のフレームごと)を探すことができました。これで、VirtualDubフレームを正確に探すことができます。「インターリーブされたMPEG-2ファイルの解析」と書かれています。それは正確にはどういう意味で、どこで同じことを始めなければならないのでしょうか?それは合法でさえありますか、私はそれについてどこかで何かを読んだことを覚えていますが、実際には覚えていません。私はdirectshowを使用してC++でプログラミングしています。私の知る限り、directshowはそれを行いません。次に、CBaseFilter、streamtimeメソッドなどを調べていましたが、その複雑なトピックに飛び込む前に、それが正しい方法であるかどうかを知りたいと思います。あなたの答えを楽しみにしています、ありがとう!
@ Geraint:フィルターグラフのコードスニペット:
次に、ビデオを探すためにIMediaSeekingを使用します。フレームステッピングも試しました(したがって、上記の参照)。
ffmpeg - FFMPEG を使用して VOB を MPEG-2 に変換すると音声が失われる
を使用して、FFMPEG を使用して VOB ファイルを MPEG2 に変換していますffmpeg -i file.vob -c copy
out.mpg
。
ビデオは正常に変換されますが、結果のファイルでオーディオが再生されません。私は得る
エラーですが-analyzeduration
、9999999 以上に設定してもエラーは解消されません。
ストリームを正しく読み取っていると思います:
ここに私のインストールに関する情報があります
matlab - freadを使用してmatlabでmpeg 2パッケージを見つける
mpeg-2 コーデックを使用した .ts ファイルに ts アナライザーを使用したところ、7311 パケットに分割されることがわかりました。fopenを使用してtsファイルをバイナリで開き、freadを使用してファイルを読み取ることにより、matlabでこれを見つけようとしていますが、得られるのは膨大な数のコレクション(パケット数をはるかに超える)の列だけです。これらのデータのどれがパケットであるかを判断する方法を知っている人はいますか? または、誰かがパケットを見つける別の方法を知っていれば、大いに役立ちます。前もって感謝します
raspberry-pi - Raspberry Pi の Gstreamer-1.0 で mpeg2ts を再生する
プログラマーの皆さん、こんばんは、RPiでgstreamerを使用して.tsファイルを再生しようとしています。Gstreamer-1.0 と gst-omx は正常にインストールされており、このサンプル パイプラインは魅力的に動作します。
gst-launch-1.0 -v filesrc location=h264_720p_hp_5.1_6mbps_ac3_planet.mp4 ! qtdemux ! h264parse ! omxh264dec ! autovideosink
実際に使用しても機能しますgst-launch-1.0 playbin uri=file:/root/h264_720p_hp_5.1_6mbps_ac3_planet.mp4
ただし、playbin を使用して .ts ファイルを再生しようとすると、実際には実行されますが、フレーム レートが非常に低いため、このアプローチは使用できません。
上記のようなカスタム パイプラインを構築しようとすると、「tsparse」が「omxmpeg2videodec」と互換性がないように見えます。
これは私が実行するものです:
このエラーを出力するもの:
gstreamerでmpeg2-tsファイルを流暢に再生する方法を知っている人はいますか?
私の目標は、同じ RPi で mumudvb によって提供される http ユニキャスト mpeg2-ts ストリームを再生することです。
ご協力いただきありがとうございます。
編集: omxplayer は .ts ファイルを完全にスムーズに再生するので、ハードウェアやファイルに問題があるとは思いません。
h.264 - Mpeg2 PES デマルチプレクサ: H.264 ビデオ ストリームで PES パケットを抽出する方法は?
PES デマルチプレクサで packet_start_code_prefix (0x000001) を検索すると、新しい PES パケットが検出されます。それが発生すると、PES_packet_length を読み取ることができるので、バイト ストリームから現在の PES パケットを抽出できます。ただし、H.264 ビデオ ストリームの場合、PES_packet_length=0 です。
このような場合、PES パケットを抽出するにはどうすればよいでしょうか。0x000001 は H.264 の最終ユニット バイト ストリームでも発生する可能性があるため、次の PES パケットを見つけるためにこのプレフィックスを使用することはできません。
すべての H.264 PES パケットで、PES パケットの最後の nal ユニットが Filler データ (nal_unit_type=12) であることに気付きました。現在の PES パケットの終了を検出するために、この事実を使用する必要がありますか?