【问题标题】:Ffmpeg x11grab exported video 16:9 is distordedffmpeg x11grab 导出的视频 16:9 失真
【发布时间】:2019-01-31 13:39:20
【问题描述】:

ffmpeg 版本 3.4.4 中使用流畅的 ffmepg。

使用带有该设置的 x11grab 捕获屏幕:

videoCommand
.addInput(display)
.addInputOptions('-y', '-f' , 'x11grab' , '-draw_mouse', '0')
.aspect('16:9')
.withSize('768x432')
.withFpsInput(60)
.withFpsOutput(60)
.output(base_path+'/'+process.argv[3]+'.mp4')

效果很好,只是视频图像失真,如下面的第二张图片。

1 - x11 正在显示的图像

2 - 生成视频中的图像

3- 导出视频的属性

尝试对 ffmpeg 使用 .keepDAR() 选项,但我得到了 4:3 的视频。

这是 ffmpeg 日志:我不知道 640*480 是从哪里来的

【问题讨论】:

  • 您的屏幕是否具有相同的纵横比?试试autopad()
  • @aergistal 是 16:9 > 2560x1440 和 1920x1080
  • 分享完整的 ffmpeg 日志。
  • @Gyan 问题已用日志编辑
  • @direxit 在-f x11grab 之前添加-video_size 1920x1080addInputOptions。见the wiki

标签: node.js ffmpeg fluent-ffmpeg


【解决方案1】:

作为输入选项:即:'-s', '768x432'

.addInputOptions('-y', '-f' , 'x11grab' , '-draw_mouse', '0' , '-s' , '768x432')

【讨论】:

  • x11grab 大小选项是-video_size,而不是-s。见documentation
  • @llogan 是的,已在初始代码中设置:.withSize('768x432') 别名:videoSize(), withSize()。
  • @llogan 是对的,withSize 设置输出帧大小。它之所以有效,是因为-s 在用于输入格式时映射到-video_size,但我认为它已被弃用。
  • 我不知道 -video_size-s 是否真的很重要:我从未调查过。但是,-framerate-r 可能很重要,无论如何,使用记录的选项是一种很好的做法,这就是我提到它的原因。
  • 使用 «fluent ffmpeg « 调用/传递参数的方式存在差异
猜你喜欢
  • 2020-04-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-09
  • 2019-05-19
  • 2023-01-14
  • 2020-11-06
  • 2017-05-26
  • 1970-01-01
相关资源
最近更新 更多