2013-12-21 4 views
0

Я хочу изменить разрешение видео с FFmpeg:FFmpeg изменить разрешение по условию

-s 852×480 

Как я могу сделать это только тогда, когда ширина видео или высота больше чем 852 × 480?

Я хочу что-то подобное с FFmpeg, а не с моим языком программирования:

if video.width > 852: 
    resize width and proportionally resize height 

if video.height > 480: 
    resize height and proportionally resize width 

if video.width > 852 and video.height > 480: 
    resize height width 
+0

вы не хотите использовать любой язык программирования? вы, вероятно, спрашиваете не в том месте. –

+0

См. [Как я могу разместить видео определенного размера, но не масштабируйте его с помощью FFmpeg?] (Http://superuser.com/a/567934/110524). Я не уверен, есть ли лучший метод, поскольку он несколько старый. – LordNeckbeard

ответ

0

@LordNeckbeard дал мне ссылку https://superuser.com/questions/566998/how-can-i-fit-a-video-to-a-certain-size-but-dont-upscale-it-with-ffmpeg/567934#567934 - но это действительно грязный раствор.

Так что я просто сделал это с питоном:

maximal_width = 852.0 
maximal_height = 480.0 
if width > maximal_width and height > maximal_height: 
    args += ['-vf', 'scale=%s:%s' % (maximal_width, maximal_height)] 
else: 
    if width > maximal_width: 
     coefficient = width/maximal_width 
     calculated_height = height/coefficient 
     args += ['-vf', 'scale=%s:%s' % (maximal_width, calculated_height)] 

    if height > maximal_height: 
     coefficient = height/maximal_height 
     calculated_width = width/coefficient 
     args += ['-vf', 'scale=%s:%s' % (calculated_width, maximal_height)] 
Смежные вопросы