これら 2 つのコマンドを 1 つに組み合わせることはできますか?

これら 2 つのコマンドを 1 つに組み合わせることはできますか?

MP4 形式のビデオ ファイルがあります。これを MP2 に変換する必要があります。ただし、MP2 形式ではファイル サイズが一定を超えるため、ファイルをさらに小さいファイルに分割する必要があります。

このため、現在 2 つのコマンドがあります。

変換コマンド

ffmpeg -i INPUTfile -codec:v mpeg2video -qscale:v 0 OUTPUTfile

切断コマンド(時間値は例です)

ffmpeg -ss 00:00:00.00 -i INPUTfile -to 00:10:00.00 -c copy -copyts OUTPUTfile

現在、ビデオ ファイルを変換し、ファイル サイズを確認します。サイズが大きすぎる場合は、まず元のビデオ ファイルを分割し、その「部分」を MP2 に変換します。

私は ffmpeg を初めて使うのですが、この 2 つのコマンドを 1 つにまとめられるかどうか疑問に思っています。繰り返しますが、必要なのは MP4 ファイルを変換して切り取ることです。最初に変換して後で切り取るか、その逆かは、私にとってはそれほど重要ではありません。

プログラムでファイルをいくつの「部分」に分割するかを決定するため、カット コマンドを複数回実行する必要があります。ただし、最終的な結果は、最終的にいくつの「部分」になるかに関係なく、MP2 形式である必要があります。

答え1

2 番目のコマンドは時間分割を実行しているため、ここからこれらのコマンドを「マージ」するのが最適です。

最初のコマンドの を適切なコーデック変換パラメータに置き換えるだけで済みます-c copy -copyts。これらのパラメータは基本的に「ストリームをそのままコピーする」という意味で、他の時間パラメータは開始点と終了点を設定します。その結果、最初のコマンドの「ストリームをコピーする」を「ビデオを変換する」に変更できます。

mp4 から mp2 への変換に関連する最初のコマンドのパラメータは です-codec:v mpeg2video -qscale:v 0。 はmpeg2video エンコーダーを使用することをcodec:v mpeg2video示しており、 0 は「最高品質」を意味します。ffmpegqscale

とにかく、簡単な転置で

ffmpeg -ss 00:00:00.00 -i INPUTfile -to 00:10:00.00 -codec:v mpeg2video -qscale:v 0 OUTPUTfile

関連情報