1

1つのビデオストリームと複数のオーディオストリームを含む単一のビデオファイルを、同時に正しいパディングを使用して、異なるビットレート/サイズの同じビデオストリームを持つファイルにトランスコードしようとしています。

私が使用するコマンドは次のとおりです。

    ffmpeg -y -ss 600 -t 600 -i "INPUT.mkv" -map_chapters -1 -map 0:0 -c:v libx264 -keyint_min 48 -g 96 -bufsize 350k -b:v 350k -minrate 300k -maxrate 400k -profile:vbaseline -level 3.0 -preset slow -vf "scale = iw * min(480 / iw \、272 / ih):ih * min(480 / iw \、272 / ih)、pad = 480:272: (480-iw)/ 2:(272-ih)/ 2 "-map 0:0 -c:v libx264 -keyint_min 48 -g 96 -bufsize 650k -b:v 650k -minrate 500k -maxrate 800k -profile:vベースラインレベル3.1-presetslow -vf "scale = iw * min(640 / iw \、360 / ih):ih * min(640 / iw \、360 / ih)、pad = 640:360:(640-iw )/ 2:(360-ih)/ 2 "-map 0:1 -c:a libfaac -b:a 32k -ar 44100 -f mpegts OUTPUT.m2ts

ffmpegは2つのビデオストリームを作成しますが、それらすべてのビットレートと解像度は最後のビデオ引数から取得されます。つまり、両方のストリームは640x360です。

    出力#0、mpegts、'OUTPUT.m2ts'へ:
    ストリーム#0:0(eng):ビデオ:h264、yuv420p、640x360 [SAR 559:560 DAR 559:315]、q = -1--1、650 kb / s、ストリーム#0:1(eng):ビデオ:h264、yuv420p、640x360 [SAR 559:560 DAR 559:315]、q = -1--1、650 kb / s、90k tbn、23.98 tbc(デフォルト)
    ストリーム#0:2(rus):オーディオ:aac、44100 Hz、5.1、s16、32 kb / s(デフォルト)
    ストリームマッピング:
    ストリーム#0:0->#0:0(h264-> libx264)
    ストリーム#0:0->#0:1(h264-> libx264)
    ストリーム#0:1->#0:2(aac-> libfaac)
    [q]を押して停止し、[?]を押してヘルプを表示します

同じファイルへの複数のビットレートへのトランスコーディングを実際に行うことは可能ですか?

4

2 に答える 2

2

入力をマッピングしていますが、出力はマッピングしていません。次のように出力ビットレートを指定してみてください:-b:v:0 350k-b:v:1 650k. また、コーデックなどの他のストリームや変数もこの方法で定義できます。詳細と例については、 FFmpeg マップ wikiを参照してください。

于 2013-03-13T13:54:31.287 に答える