web-dev-qa-db-ja.com

Linuxコマンドラインからmpegビデオの一部をトリミングまたは削除するにはどうすればよいですか?

私は長いmpegムービーを持っていて、最初と最後から多くの素材を切り取り、途中で特定のパッチを切り取りたいと思っています。 Linuxコマンドラインからこれを簡単に実行できる方法はありますか?

5
dggoldst

ジョブのツールはmpgtxです(インストールされていない場合は、Sudo apt-get install mpgtxなどを試してください)。

ファイルの名前がinput.mpgで、output.mpgを作成するとします。一般的なタスクは次のとおりです。

mpegムービーからセグメントを選択し、それらから新しいmpegムービーを作成します

//秒10〜20、42〜52、次に1:23〜1:33を取得し、新しいmpegムービーを作成します

mpgtx -j input.mpg [0:10-0:20] [0:42-0:52] [1:23-1:33] -o output.mpg

注:mpgtx-jはmpgjoinと同等です。注:Sudo apt-get installmpgtxを介してインストールする必要があります

mpegムービーの最初または最後から選択します

//最初の20秒、42秒から52秒、次に1:23から最後までを取得します***

mpgtx -j input.mpg [-0:20] [0:42-0:52] [1:23-] -o output.mpg

mpegムービーをカスタムの長さのいくつかのファイルに分割します

//分1-2と3-4を2つのファイル(out-1.mpgとout-2.mpg)に分割します

mpgtx -s input.mpg [1:00-2:00] [3:00-4:00] -b out  

mpegムービーを同じ長さに分割します

//ムービーをout-1.mpg、out-2.mpg、...、out-5.mpgと呼ばれる5つの等しい長さの部分に分割します

mpgtx -5 input.mpg -b out  

コマンドラインから複数のmpegビデオファイルを連結または結合します

mpgtx -j file1.mpg file2.mpg file3.mpg -o output.mpg

タイミングがずれている場合はファイルを再エンコードします

Mpgtxの動作方法(画像のグループベース)が原因で、タイミングがあまり正確でない場合があります。 mpegを一定のビットレートで再エンコードすると、ファイルが生成され、上記の方法で非常に正確に分割できることがわかりました。簡単な再エンコード呼び出しは次のとおりです。

// 2250kの固定ビットレートで再エンコードします

ffmpeg -i input.mpg -b 2250k -minrate 2250k -maxrate 2250k -bufsize 1000k output.mpg

注意。 ffmpegはmpgtxが実行できることの多くを実行できますが、後者を使用すると、複数のカットを指定するのがはるかに簡単になります(また、開始時間と期間ではなく、開始時間と終了時間で入力を指定できます)。ただし、ffmpegは素晴らしい仲間です。 AVIをffmegでmpegに変換してから、mpgtxで分割を行うことが、作業を完了するための最も簡単な手段であることがわかりました。

詳細については、mpgtxとffmpegのマニュアルページ(およびそのオンラインヘルプページ http://ffmpeg.org/ffmpeg-doc.html )を参照してください。

7
dggoldst

Ffmpegを試すことができます。 http://www.joeldare.com/wiki/video:cut_video_with_ffmpegを参照

残しておきたい映画の断片を切り取り、それらを結合して最終的な映画を作成します(ビデオの結合: http://ffmpeg.org/faq.html#SEC

ここで利用可能なその他のffmpegオプションに関するドキュメント: http://ffmpeg.org/ffmpeg-doc.html

3
Shawn Chin