2013-05-06 1 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 그것은 절대적으로 맞습니다. 물론 종횡비는 곱 해져서 나눠지지 않아야합니다. 감사 –

관련 문제