私は通常MediaInfoを使用してメディアファイルを調べ、ファイル内のビデオ/オーディオトラックの長さを確認します。私は、おそらくスピードのために、実際のファイルストリームではなく、ファイル(ヘッダー)のメタデータをMediaInfoが見ていると思います。私は実際にファイルを通ってメディアファイル内のビデオ/オーディオトラックの長さを調べるツールを望んでいます。ビデオ/オーディオファイル分析 - MediaInfoに似たメタデータ
これは、正しいオーディオトラック期間を報告していないメディアファイルのインスタンスがあるためです。例:オーディオファイルとビデオファイルvid1.mxfとaud1.mxfの2つのファイルがありますが、これらは同じ長さです。私はこれらをまとめてFFMPEGを使用していますが、ストレージ障害/ネットワークの問題により、結果ファイルのオーディオトラックが短くなります。 MediaInfoでは短いとは報告されません。ファイルを聞いても明らかに短いですが、ネットワーク/ストレージデバイスは、「ステッチング」の間にアクセスできない状態になっているに違いありません。オーディオおよびビデオ入力ファイルは、異なるストレージデバイス上にあります。
これまでこのC#ライブラリhttps://github.com/naudio/NAudioを使用していましたが、コンテナ内のビデオ(.mxf)があるファイルではなく単数.wavファイルのみで動作します。
おかげ
実際には、これは機能しません。それは完全に(ビデオと同じ持続時間)オーディオトラックをデコードし、MediaInfoとまったく同じ持続時間を示します。私はffmpegでそれをデコードし、オーディオストリームをコピーしてヌルに出力して同様のことを試しましたが、オーディオを聞いても約25秒でオーディオが停止しますが、30秒(ビデオ)は完全にデコードされます。 – user3585420
その後、最後の5秒間、ヌルオーディオサンプルがあります。オーディオストリームとビデオストリームは独立したエッセンスです。 ffprobeはパケットエントリがない場合はパケットエントリを生成しません。これを試してみましょう:オーディオ抜粋 'ffmpeg -i video -t 5 -vn aud.mp4'を抽出します。ここで' 5 'は動画の継続時間よりも小さい値です。その後、 'ffmpeg -i video -i aud.mp4 -c copy -map 0:v -map 1:a joined.mp4'を実行します。次に、ステップ1のコマンドを実行し、最後のpts_time値を比較します。 – Mulvya