【问题标题】:Videos processed with ffmpeg are not 1080p as specified by flags使用 ffmpeg 处理的视频不是标志指定的 1080p
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

  • ffmpeg 附带的 ipod640 预设不包含更改大小的选项,并且 OP 已经将-s 1920x1080 作为输出选项。
  • 是的,同意。最好在这里获得完整的控制台输出。我在一个几个文件,它每次都有效。所以想知道他面临什么问题。
猜你喜欢
  • 2012-07-14
  • 2016-12-23
  • 2020-05-11
  • 2015-12-10
  • 2017-11-14
  • 1970-01-01
  • 2014-08-01
  • 2021-10-28
  • 1970-01-01
相关资源
最近更新 更多