2013-05-06 6 views
6

ビデオの束を一括処理して、縦横比を同じにして高さを240にスケーリングする必要があります。ほとんど行わ仕事を取得するコマンドは次のとおりです。libavフィルタを使用してビデオをスケーリングするエラー

$ avconv -threads 4 -ss 0.0 -i input.avi \ 
-map 0:0,0:0 -map 0:1,0:1 -vf "scale=-1:240" -y -f mpegts \ 
-async -1 -vcodec libx264 -vcodec libx264 -flags2 +fast \ 
-flags +loop -g 30 -bufsize 1024k \ 
-b 200k -bt 220k -qmax 48 -qmin 2 -r 20 -acodec libmp3lame \ 
-ab 44k -ar 44100 -ac 2 output.ts 

興味深い部分は、あなたが見ることができるように、これは、スケーリングされた出力幅が偶数であることが判明した動画に取り組んでいます-vf "scale=-1:240"

です。そうでないと、次のエラーメッセージが表示されます。

[libx264 @ 0x7fc4f8821e00] width not divisible by 2 (341x240) 

これをどのように克服できますか?

編集: このlinkによれば、映画を出力するを使用しようとしましたが、結果として得られるビデオ品質は実際には劣ります。

編集#2: これはには間違ってマークされているので、ではありません。この質問は他の質問よりもはるかに早く掲載されました。

+0

。通常、投票数の少ない質問は重複としてマークされます。 – LordNeckbeard

+0

@LordNeckbeardこれは理にかなっていますが、上記のボックスにSO自身の定義と矛盾しています。特に、 "重複とマークされています...この質問は以前に尋ねられ、すでに回答があります。 –

+0

はい、この質問は複数のユーザーから何度も尋ねられています。誰が最初であるかを疑うのは時間の無駄です。解決策はすべて同じです。副作用として、時間的順序に関係なく重複としてマークされるものがあります。もっと重要なのは、1)人々は質問をする前に検索しません。 2)人々はプログラミングとは関係のない、話題以外の質問をする。スタックオーバフローはプログラミングに関する質問のみである。 – LordNeckbeard

答えて

8

更新;あなたが今使用することができます。

-vf scale=-2:240 

Is there a good list of mp4 supported resolutions and a way to have ffmpeg calculate the width after modifying by set height ratio?


リンクは実際に言う:あなたが拡張したい場合は、正しく、偶数に高さをスケーリング

scale="854:trunc(ow/a/2)*2" 

を 幅:このイディオムを使用する必要があります。

その背後にある
-vf scale="trunc(oh*a/2)*2:240" 
#    ^
#    /
#  notice --- 

数学:本当に古いあるご質問は関係ありません複製については

iw ow 
-- = -- 
ih oh 

ow = (iw * oh)/ih 
ow = oh * a 
+0

これらの略語は何を表していますか? – Xeoncross

+0

@StevenPennyそれは絶対に正しいです。もちろんアスペクト比は乗算され、分割される必要はありません。ありがとう –

関連する問題