gpt4 book ai didi

ffmpeg 解码原始 h264 失真或灰色图像

转载 作者:行者123 更新时间:2023-12-04 22:55:32 25 4
gpt4 key购买 nike

我需要解码来自实时 DVR 摄像机的 H264 流。
为了方便示例,我将来自 DVR 摄像机的 RAW 流存储在以下文件 (test.h264) 中:http://f.zins.com.br/test.h264

为了解码直播流,我遵循以下 ffmpeg 示例:https://github.com/FFmpeg/FFmpeg/blob/master/doc/examples/decode_video.c

如果我用 VLC 打开 .h264 测试,图像看起来很完美。
如果您使用 使用 ffmpeg 解码 .h264 测试avformat_open_input avformat_find_stream_info ,图像看起来也很完美。

但如果我使用 https://github.com/FFmpeg/FFmpeg/blob/master/doc/examples/decode_video.c 解码例如,图像全部失真。我认为发生这种情况是因为 H264 流可以同时具有音频。

开启ffmpeg的调试,显示很多如下错误:

[h264 @ 092a9b00] Invalid NAL unit 0, skipping.
[h264 @ 092a9b00] Invalid NAL unit 0, skipping.
[h264 @ 092a9b00] Invalid NAL unit 0, skipping.
[h264 @ 092a9b00] error while decoding MB 16 1, bytestream -28
[h264 @ 092a9b00] Invalid NAL unit 8, skipping.
[h264 @ 092a9b00] Invalid NAL unit 8, skipping.
[h264 @ 092a9b00] Invalid NAL unit 8, skipping.

有没有办法让我只过滤 视频 忽略音频来自直播?
否则,是否有任何解决方案可以使用 decode_video.c 示例解码 test.h264 而不会扭曲帧?

扭曲的帧有时看起来像下面的图像,有时它几乎全是灰色的。
distorted frame

最佳答案

该流具有围绕原始 h264 数据包的 mpeg 包装器,我们需要先对它们进行解复用。如果您无法提供带有一些 protocol supported by ffmpeg 的 URL (例如 udp:// ),您应该构建自定义 AVIO上下文 用于您的直播并将其传递给

avformat_open_input(&fmt_ctx, NULL, NULL, NULL)

类似于 this example .

现在你可以开始通常的解复用器循环
av_read_frame(fmt_ctx, &pkt)

关于ffmpeg 解码原始 h264 失真或灰色图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49739900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com