首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解码原始h264失真或灰度图像

解码原始h264失真或灰度图像
EN

Stack Overflow用户
提问于 2018-04-09 19:00:56
回答 1查看 4.5K关注 0票数 1

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

要解码活动流,我遵循以下ffmpeg示例:video.c

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

但是,如果我使用video.c示例进行解码,图像都会被扭曲。我认为发生这种情况是因为与H264流一起可以有音频。

启用了ffmpeg的调试,它显示了许多以下错误:

代码语言:javascript
运行
复制
[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.

有没有办法让我只过滤视频忽略音频从现场流?否则,是否有任何解决方案可以在不扭曲帧的情况下使用test.h264示例来解码decode_video.c?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-11 05:51:28

该流在原始h264数据包周围有mpeg包装器,我们需要首先对它们进行解析。如果您不能提供由ffmpeg支持的协议 (例如,udp://)之类的URL,则应该为您的活动流构建自定义的AVIOContext,并将其传递给

代码语言:javascript
运行
复制
avformat_open_input(&fmt_ctx, NULL, NULL, NULL)

类似于这个例子

现在,您可以开始通常的demuxer循环

代码语言:javascript
运行
复制
av_read_frame(fmt_ctx, &pkt)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49739900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档