【发布时间】:2012-09-01 14:45:25
【问题描述】:
我正在使用 ffmpeg + libx264 在 Python 中转换视频。
我注意到当我使用下面的代码时,输出的宽度和高度并不一致。所有输入文件均为 1080p,但输出文件有时为 1080p,有时为两倍大小或介于两者之间。
这是我用来生成视频的两遍代码。
#Generate 1080p Movie
if not os.path.exists(destination_filename_1080):
pass_num = 1
while pass_num <= 2:
p = subprocess.Popen(['ffmpeg','-i', str(filename),
'-acodec' , 'aac' ,
'-ab' , '192k' ,
'-ac' , '2' ,
'-vcodec' , 'libx264' ,
'-strict' , '-2' ,
'-vpre' , 'ipod640' ,
'-threads' , '8' ,
'-s' , '1920x1080' ,
'-b:v' , '10M' ,
'-pass' , str(pass_num) ,
'-passlogfile' , random_1080 ,
'-y' ,
destination_filename_1080_temp])
p.wait()
pass_num = pass_num + 1
我的理解是“-s 1920x1080”标志应该强制输出为 1080p,不是吗?我不确定当输入只有 1080p 时,输出大小如何能大于 1080p。
提前致谢。
【问题讨论】:
-
你的预设文件有什么特别之处吗?
-
只是mbit速率的规格,与尺寸无关。
-
尝试在有问题的文件上手动运行
ffmpeg并将输出重定向到文件。查看该文件以获取线索。 -
像往常一样,完整的 ffmpeg 控制台输出在这种情况下会很有用。
标签: python ffmpeg video-streaming html5-video