0

x264 にトランスコードするソース ビデオ (mpeg2video) があります。ソースには、テレビから録画された 2 つの異なる番組が含まれています。1 つは 4:3 AR で、もう 1 つは 16:9 AR です。VLC でソース ファイルを再生すると、プレーヤーのサイズが正しく変更され、正しい AR でビデオが表示されます。ここまでは順調ですね。

変換プロセスをトランスコードすると、最初の数フレームから AR が自動検出され、この AR を使用してビデオ全体がトランスコードされます。16:9 セクションが最初に来る場合、変換全体が 16:9 で行われ、4:3 セクションが水平方向に伸びているように見えます。4:3 セクションがソース ファイルの先頭にある場合、トランスコード全体が 4:3 で実行され、16:9 セクションが水平方向に押しつぶされたように見えます。

黒いバーは表示されません。

これが私のコマンドです:

nice -n 17 ffmpeg -i source.mpg -acodec libfaac -ar 48000 -ab 192k -async 1 -copyts -vcodec libx264 -b 1250k -threads 2 -level 31 -map 0:0 -map 0:1 -map 0:2 -scodec copy -deinterlace output.mkv

何が起こっているのか完全にはわかりません。入力ビデオにあるのと同じ「AR の変化」を中間ビデオの出力ファイルに取得するにはどうすればよいですか?

4

1 に答える 1

0

ffmpeg が途中でそうするように設計されているとは思いません。libav を使用して独自のアプリケーションを作成する必要があります。より簡単な方法は、結合するビデオの 2 つのチャンクを作成することです。

編集: これに対処する最善の方法は、AR の変更を自分で検出し、2 つのセグメントを別々にトランスコードして結合できる場合です。

EDIT2:ffmpeg自体を使用してビデオをチャンクし、必要なものを何でもデマルチプレクサして、再びマルチプレクサに戻します。それはうまくいくはずです。avidemux を使用する必要はありません。

于 2012-08-26T17:50:08.557 に答える