web-dev-qa-db-ja.com

ffmpegおよび/またはpython)を使用した2パスバッチビデオエンコーディング

Windowsマシンで小さなファイルにエンコードしたいビデオファイルの大きなセットがあります。

4Kの一定のビデオビットレートを使用してオーディオをコピーしたいと思います。この特定のビットレートを使用して、2パスFFmpegを使用して最高品質のビデオを取得することに決めました。変換するビデオが複数ない限り、機能するバッチファイルを作成しました。

for %%a in (*.mp4 *.mkv) do ffmpeg -y -i ^"%%a^" -c:v libx264 -b:v 4000k -preset fast -pass 1 -an -f mp4 NUL && ^

for %%a in (*.mp4 *.mkv) do ffmpeg -i ^"%%a^" -c:v libx264 -b:v 4000k -preset fast -pass 2 -c:a copy ^"converted/%%~na.mp4^"
  • ディレクトリにビデオファイルを追加すると、このコマンドは各ビデオで最初のパスを実行しようとし、すべてのビデオの2番目のパスに移動する前に、前の最初のパスを削除して、2つのパスの目的を無効にします。

私はPythonに比較的慣れていませんが、Pythonを介してこれを実現する方が簡単かもしれないと思っていました。

1
olpdog

Windows 1064ビット

cmdを使用した2パスビデオエンコーディングと4K一定のビデオビットレートを使用したffmpegを使用し、オーディオをコピーします。

appsloveworld.com - SampleVideo_1280x720_1mb.mkv から1MBのサンプル.mkvファイルをダウンロードします

CMD:

if not exist converted (md converted)
for %g in (*.mp4 *.mkv) do (
ffmpeg -y -i "%g" -c:v libx264 -b:v 4000k -preset fast -pass 1 -an -f mp4 NUL
ffmpeg -i "%g" -c:v libx264 -b:v 4000k -preset fast -pass 2 -c:a copy "converted\%~ng.mp4"
)
rem delete ffmpeg temp files
del ffmpeg2pass*
exit /b 

脚本:

if not exist converted (md converted)
for %%g in (*.mp4 *.mkv) do (
ffmpeg -y -i "%%g" -c:v libx264 -b:v 4000k -preset fast -pass 1 -an -f mp4 NUL
ffmpeg -i "%%g" -c:v libx264 -b:v 4000k -preset fast -pass 2 -c:a copy "converted\%%~ng.mp4"
)
rem delete ffmpeg temp files
del ffmpeg2pass*
exit /b 

Cmdとffmpegを使用して、.mp4と.mkvを2パスバッチ変換します。mp4と.mkvを2パスバッチ変換します。

0
somebadhat