1

我正在使用 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。

提前致谢。

4

1 回答 1

0

两件事:1.预设文件检查:我应该确保我的预设没有给出大小。2. 参数顺序。它们在 ffmpeg 中很重要。改变你给他们的地方,看看。

编辑:除非我们有出错案例的完整控制台输出,否则很难判断出了什么问题。

于 2012-09-01T18:02:58.457 回答