Python 使用ffmpeg处理的视频不是由标志指定的1080p

Python 使用ffmpeg处理的视频不是由标志指定的1080p,python,ffmpeg,video-streaming,html5-video,Python,Ffmpeg,Video Streaming,Html5 Video,我正在使用ffmpeg+libx264转换Python中的视频 我注意到当我使用下面的代码时,输出的宽度和高度是不一致的。所有输入文件都是1080p,但输出文件有时是1080p,有时是大小的两倍或介于两者之间 这是我用来生成视频的2遍代码 #Generate 1080p Movie if not os.path.exists(destination_filename_1080): pass_num = 1 while pass_num <= 2: p =

我正在使用ffmpeg+libx264转换Python中的视频

我注意到当我使用下面的代码时,输出的宽度和高度是不一致的。所有输入文件都是1080p,但输出文件有时是1080p,有时是大小的两倍或介于两者之间

这是我用来生成视频的2遍代码

  #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
#生成1080p电影
如果不存在os.path.exists(目标\u文件名\u 1080):
pass_num=1
而pass_num有两件事:
1.预设文件检查:我应该确保我的预设没有给出大小。
2.参数顺序。它们在许多方面都很重要。改变你给他们看的地方


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

预设文件中有什么特别的内容吗?只是mbit速率的规范,与维度无关。尝试手动对有问题的文件运行
ffmpeg
,并将输出重定向到一个文件。查看该文件以寻找线索。与往常一样,完整的ffmpeg控制台输出在这种情况下会很有用。ffmpeg附带的ipod640预设不包括更改大小的选项,并且OP已经将
-s 1920x1080
作为输出选项。是的,同意。最好在这里获得完整的控制台输出。我在一些文件上尝试了ffmpeg-I input.mp4-acodec aac-ab 192k-ac2-vcodec libx264-strict-2-vpre ipod640-threads 8-s 1920x1080-b:v 10M-pass 1-passlogfile random_1080-y out.mp4,每次都有效。所以想知道他面临什么问题。