【发布时间】:2021-09-17 00:12:16
【问题描述】:
设置:
-
通过 RTSP 实时传输 h.264 编码视频的摄像机
-
一个使用 FFMPEG 抓取 H.264 数据包片段的 Android 应用,将其转换为像素格式 yuv422 的 mjpeg 帧。
-
一个单独的应用程序通过 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 的完整日志