ビデオを変換する最速の方法(バッチまたはシングル)?


26

ここではビデオエンコーダーについて多くの質問があることを知っていますが、私の質問はワークフロー/効率性に関するものです。

私の日々の仕事のために、多くのランダム形式(通常は大規模なAVIM4Vなど)からビデオを頻繁に変換し、それらを変換して、インターネットでアップロードに使用できる効率的なファイルに圧縮する必要があります。私が作成しなければならない形式は次のとおりです。

いくつかのユースケース(ソースと同じ、1080p、または720pに変換)の一般的なテンプレートを作成し、これらをすばやく処理し、キューに入れる必要があります。

Ubuntuでこのプロセスを最適に実行するためのアイデアはありますか?


WindowsにはAvantiがあることは知っていますが、Linuxで最も近いのはavconvコマンドラインか、WinFFやConvertMeのようなフロントエンドです...最後の手段として、AvantiをWineで試すことができます。
リチャード

回答:


52

コマンドラインを使用する場合は、ffmpeg(またはhandbrake-cli)を使用できます。

MP4

あなたが最近のバージョンを使用していると仮定するとffmpeg

ffmpeg -i input -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k \
-movflags +faststart -vf scale=-2:720,format=yuv420p output.mp4
  • -crf:品質。範囲は対数0(損失なし)から51(最低品質)です。デフォルトは23です。主観的な正常範囲は約18〜28です。それでも許容できる品質が得られる最高の値を使用します。YouTubeなどにアップロードするために非現実的に大きな入力を再エンコードする場合、これらのビデオサービスはいずれにしても再エンコードされるため、17または18の値を試してください。

  • -preset:エンコード速度。プリセットを遅くすると圧縮率は向上しますが(ファイルサイズあたりの品質)、遅くなります。忍耐力が最も遅いものを使用してください:超高速、超高速、超高速、高速、高速、中(デフォルト)、低速、低速、超低速。

  • -movflags +faststart:プログレッシブダウンロード表示の場合、完全にダウンロードされる前にビデオを再生できます。ビデオをホストしている場合に役立ちます。YouTubeなどのビデオサービスにアップロードする場合は不要です。

  • -vf scale=-2:720,format=yuv420pフィルターグラフ使ってスケールをし、フォーマットビデオフィルタ。高さ720ピクセルに拡大縮小し、アスペクトを維持する幅を自動的に選択してから、ピクセル形式がダムプレーヤーと互換性があることを確認します。

  • -b:a 128k:音声ビットレート。ffmpegが古い場合は-strict experimental、使用するために追加する必要があります-c:a aac

MOV

MOVおよびMP4ファイルにはおそらく同じビデオおよびオーディオ形式が含まれているため、MP4をエンコードし、再エンコードの代わりに(ストリームコピーモードで)再多重化することでMOVを作成できます。

ffmpeg -i input.mp4 -codec copy output.mov

WMV

FFmpegはWMV 7および8のみをサポートします。バージョン9のオープンソースエンコーダーを知りません。

$ ffmpeg -encoders | grep -i windows
[...]
 V..... = Video
 A..... = Audio
 ------
 V..... wmv1                 Windows Media Video 7
 V..... wmv2                 Windows Media Video 8
 A..... wmav1                Windows Media Audio 1
 A..... wmav2                Windows Media Audio 2

私はこれらのエンコーダーに慣れていないので、テストされていない例を紹介するだけです。

ffmpeg -i input -c:v wmv2 -b:v 1024k -c:a wmav2 -b:a 192k output.wmv

ffmpegの入手

ffmpegのLinuxビルドをダウンロードするか、ステップバイステップのffmpegコンパイルガイドに従ってビルドをカスタマイズできます。

bash「forループ」を使用してバッチエンコードを実行する

ディレクトリ内のすべてのビデオをエンコードするには:

$ mkdir encoded
$ for f in *.avi; do ffmpeg -i "$f" -c:v libx264 -crf 23 -preset medium \
  -c:a aac -b:a 128k -movflags +faststart -vf scale=-2:720,format=yuv420p \
  "encoded/${f%.avi}.mp4"; done

こちらもご覧ください


5

HandBrakeをお試しください。

HandBrakeは、ビデオをほぼすべての形式から最新の広くサポートされているコーデックの選択に変換するためのツールです。インストールするには、キーボードのCtrl+ Alt+ Tを押してターミナルを開きます。開いたら、以下のコマンドを実行します:

sudo add-apt-repository ppa:stebbins/handbrake-releases
sudo apt-get update
sudo apt-get install handbrake
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.