web-dev-qa-db-ja.com

aviファイルを正しく分割する

aviファイルを次のように分割しようとしています。

avconv -i file.avi -vcodec copy -acodec copy -ss 0 -t 10 out.avi

これは機能します(ビデオの最初の10秒でチャンクを作成します)。

問題は、ビデオの10秒から20秒に分割したいときです。

avconv -i file.avi -vcodec copy -acodec copy -ss 10 -t 10 out.avi

結果のビデオには、最初の2秒間の音声しかありません。

ループで使用します。したがって、同様にチャンク20-30.avi、30-40.avi ...はひどくチャンクされており、最初からさまざまな長さのサウンドのみが含まれています。

Aviビデオを正しくチャンクする方法を知っていますか?

6
xralf

多くのビデオコーデックは、2つまたは3つの異なる方法でビデオフレームをエンコードします: Iフレーム、Pフレーム、およびBフレーム 。つまり、Iフレームだけが、ビデオの開始点となるのに十分なデータを保持します。 -vcodec copy、ソフトウェアはこれのみを行います—フレームをコピーします。したがって、チャンクがIフレームで開始するような時間にカットが発生した場合、正常に再生されます。そうでなければ、そうではありません。

したがって、ビデオを再エンコードする方法はありません。一部のGUIソフトウェア(avidemuxなど)はこれを「スマートに」実行します。チャンクの最初の部分から最初の使用可能なIフレームまでを再エンコードしてから、残りをコピーします。

1
L. Levrel