使用 YUV 4:2:0 平面颜色模型在 Mac OS X 上制作 ffmpeg 屏幕截图

低音

我让屏幕录制与ffmpeg使用avfoundation的Mac OS Xx11grab的Linuxgdigrab的Windows

生成的文件应该与现代 Web 浏览器 ( <video/>)兼容,因此我使用 H.264 编解码器并请求 YUV 4:2:0 平面像素格式。

但是,Mac OS X 上(与LinuxWindows不同),我收到以下日志记录:

/usr/local/bin/ffmpeg -y -v error -f avfoundation -threads 0 -hide_banner -i 1:none -f mp4 -vcodec h264 -pix_fmt yuv420p -r 25/1 -qscale:v 1 -vf scale=-1:1080 target.mp4
[avfoundation @ 0x7fdba2003a00] Selected pixel format (yuv420p) is not supported by the input device.
[avfoundation @ 0x7fdba2003a00] Supported pixel formats:
[avfoundation @ 0x7fdba2003a00]   uyvy422
[avfoundation @ 0x7fdba2003a00]   yuyv422
[avfoundation @ 0x7fdba2003a00]   nv12
[avfoundation @ 0x7fdba2003a00]   0rgb
[avfoundation @ 0x7fdba2003a00]   bgr0

尽管如此,根据mplayer,生成的 MP4 文件似乎具有 YUV 4:2:0 平面颜色模型:

[h264 @ 0x1048a8ac0]Format yuv420p chosen by get_format().
[h264 @ 0x1048a8ac0]Reinit context to 1728x1088, pix_fmt: yuv420p
[h264 @ 0x1048a8ac0]Format yuv420p chosen by get_format().
[h264 @ 0x1048a8ac0]Reinit context to 1728x1088, pix_fmt: yuv420p
[swscaler @ 0x1048c3cc0]bicubic scaler, from yuv420p to yuyv422 using MMXEXT
*** [scale] Exporting mp_image_t, 1728x1080x12bpp YUV planar, 2799360 bytes
*** [vo] Allocating mp_image_t, 1728x1080x16bpp YUV packed, 3732480 bytes

同样证实ffmpeg

$ ffmpeg -i target.mp4 -hide_banner
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'target.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.20.100
  Duration: 00:00:04.72, start: 0.000000, bitrate: 201 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1728x1080, 197 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler

问题:

  1. 有人可以解释上述ffmpeg日志记录吗?
  2. 如果我仍然需要将avfoundation视频流转换yuv420p,我该如何即时(单ffmpeg次通过)?
吉安

avfoundation 模块的像素格式默认设置为 yuv420p。如果不可用,它将打印该警告并尝试选择另一种格式。您应该在该警告下方看到一行以Overriding selected pixel format to use ..

如果输出正常,则可以忽略。您不需要第二次通过或任何其他更改。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Mac OS X中拍摄屏幕截图?

在Mac OS上重新启动屏幕截图过程

Mac OS X上的MetaTrader 4与C ++或R结合使用

Python OpenCV将平面YUV 4:2:0图像转换为RGB-YUV数组格式

如何像截图一样在Mac OS X中将屏幕截图直接复制到Slack / skype

在Mac OS X上使用JNotify?

在Mac OS上使用Swift 4拖放

在Mac OS X上安装iLBC编解码器(libilbc)以与FFmpeg一起使用

如何在Mac OS X的一个屏幕上反转颜色?

使用 ffmpeg 从 mp4 视频中提取 Yuv 帧

如何使用ffmpeg在Mac上捕获定时屏幕录像

在OS X上安装FFmpeg

Tesseract / Tess4J在Mac OS X上崩溃:问题框架:C [libtesseract.dylib + 0xcf72] tesseract :: TessResultRenderer ::〜TessResultRenderer()+ 0x10

Mac OS X上的Firefox 4:内存泄漏

无法在Mac OS X 10.7上的virtualenv中使用pip安装psycopg2

无法使用 0 宽度截取屏幕截图

Capybara:无法在Mac上使用Selenium驱动程序进行屏幕截图

使用汇编制作屏幕截图

如何运行 ffmpeg 来截取 x 个屏幕截图?

Rails使用ffmpeg制作视频截图

我如何从给定的yuv 4:2:0文件中提取yuv帧

在Mac OS X上通过ffmpeg捕获全屏录制时的视频分辨率

在Mac OS X上的boot2docker,docker,django

在Mac OS X 10.9.5上安装Psycopg2

如何使用i3 WM在Arch Linux上轻松制作屏幕区域的屏幕截图?

在Mac OS X上卸载?

Mac OS X上的Python

使用ffmpeg使用MPEG-4编码器从yuv编码到m4v

如何定义在Mac OS X上使用的库?