FFMPEG を使用してビデオを変換します。私の目標は、 AACでエンコードされたオーディオ ストリームとMPEG-4 part 10でエンコードされたビデオ ストリームを使用して、それらを MP4 コンテナー形式 ( MPEG-4 Part 14 )に変換することです。
次の行を使用してビデオを変換します。
ffmpeg -y -i "{inputFile}" "{outputFile}"
変換されたビデオは問題ないように見えますが、変換されたファイルと入力ファイルのストリームの長さが常に一致するとは限りません。
私はいくつかの実験を行いましたが、持続時間の違いは間違いなくありますが、それほど大きくはありません.とにかく、小さなビデオでテストしています. ここに私の結果があります:
| InputFile | InputAudio | InputVideo | OutputAudio | OutputVideo |
|------------|------------|------------|-------------|--------------|
| h.avi | 3s 631ms | 3s 567ms | 3s 668ms | 3s 567ms |
| h.flv | 3s 631ms | 3s 558ms | 3s 668ms | 3s 567ms |
| h.mov | 3s 532ms | 3s 533ms | 3s 682ms | 3s 534ms |
| h.mp4 | 3s 605ms | 3s 534ms | 3s 682ms | 3s 567ms |
| h.mpg | 3s 605ms | 3s 533ms | 3s 563ms | 3s 534ms |
| h.wmv | 3s 620ms | 3s 633ms | 3s 659ms | 3s 567ms |
私はFFMPEGの上にソフトウェアを構築するので、この違いの理由が少しでも理解できれば幸いです。不要なトランスコーディングが原因ですか?
この場合、このトランスコーディングをオフにして、FFMPEG が入力ビデオ ファイルをリサンプリングしないようにすることはできますか?
オフにできない場合、この違いがビデオのサイズに比例していないことを (テスト以外に) どうすれば確認できますか?
たとえば、10 時間のビデオを変換する場合、数秒または数分の差は私には適していません。