【问题标题】:Conversion to yuv422p pixel format is incorrect转换为 yuv422p 像素格式不正确
【发布时间】:2021-09-17 00:12:16
【问题描述】:

设置:

  1. 通过 RTSP 实时传输 h.264 编码视频的摄像机

  2. 一个使用 FFMPEG 抓取 H.264 数据包片段的 Android 应用,将其转换为像素格式 yuv422 的 mjpeg 帧。

  3. 一个单独的应用程序通过 udp 接收所述 jpeg 图像,期望它们为 yuv422 像素格式,并显示流。

所有这些组件之间的桥梁工作完美,#2 获取帧并将其发送到#3,#3 验证它接收。但是,#3 不会显示,因此在仔细检查它收到的数据包后,我在每个数据包的 jpeg 图像标头中发现水平-垂直二次采样因子不是 YUV422 的预期值。它是 0x22,尽管对于 YUV422,我们应该期望水平色度分辨率减半(所以我们应该期望 0x21)

这是我使用的 ffmpeg 命令:

ffmpeg -i rtsp://****:*** -vcodec mjpeg -pix_fmt yuv422p -f mjpeg udp://*******

会发生什么?默认编解码器是否不支持这种转换?

【问题讨论】:

  • FFmpeg MJPEG 编码器支持:yuvj420p yuvj422p yuvj444p。见ffmpeg -h encoder=mjpeg
  • 共享 cmd 2 的完整日志

标签: ffmpeg h.264 mjpeg


【解决方案1】:

消费空间中的大多数视频是 4:2:0 而不是 4:2:2。 因此,请尝试使用 YVU420 (‘YV12’)、YUV420 (‘YU12’) 或其他 4:2:0 之类的像素格式。

【讨论】:

    猜你喜欢
    • 2014-04-15
    • 2014-03-11
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多