当前位置: 首页 > 知识库问答 >
问题:

部分解码h264流

淳于健
2023-03-14

我正在尝试获取关于h264位流中帧的信息。特别是宏块的运动矢量。我想,我不得不为它使用ffmpeg代码,但它真的很庞大,很难理解。那么,有没有人可以给我一些从h264流的单帧原始数据中进行部分解码的技巧或Exapms?

谢谢你。

共有1个答案

仲孙俊贤
2023-03-14

不幸的是,要从比特流中获得这种级别的信息,您必须对每个宏块进行解码,没有快速的选项,就像从片头获得信息一样。

一种选择是使用H.264参考软件并打开详细的调试输出和/或在需要的地方添加自己的printf,但这也是一个很大的代码库来导航:

http://iphome.hhi.de/suehring/tml/

 类似资料:
  • 我正在解码从Android上的wifi摄像头接收到的原始h264。 这是解码时产生的视频的一个例子,除了底部部分看起来很好。 我还注意到一些奇怪的事情,当我移动摄像机时,饲料似乎运行几乎完全流畅(底部没有垃圾),一旦我把它放下,垃圾视频返回(我会以为它是相反的方式...) 我正在将h264数据解析成以澳元开头的块,每个块以澳元开头,当另一个开始时结束。 我的理解是,每个解析的“块”(以AUD开头)

  • 我正在使用对三星S6上的h264流进行解码,发现mediacodec的输入缓冲区必须以“0001”开头(并且不需要设置pps、sps),否则ACodec将报告错误。 我也尝试使用mediaextractor播放一个mp4文件,它工作良好,但缓冲区到mediacodec不是以“0001”开始。 我不知道为什么decodec一个h264流有这样的限制,目前我需要从socket分析流,并将数据切割成小包

  • 我正在尝试使用c中的ffmpeg将视频文件解复用到视频部分(h264、mpeg4、h265、vp8等)和音频部分(mp3、aac、ac3等)以及字幕部分(srt)中。 音频部分很好,并在我所有的媒体播放器上播放,字幕部分也一样。然而,视频部分没有出现错误,并保存到了。h264文件,但当我使用ffprobe检查它或ffplay播放它时,它总是给出错误“处理输入时发现无效数据”。 下面的代码 编辑2我

  • 我需要一些解码器在rtsp视频流的帮助。我从AXIS IP摄像机那里得到的。我使用了ffmpeg库。必须单独创建AVCodecContext,而不是从AVFormatContext->Streams[...]->Codec; 所以我创建AVCodec、AVCOdecContext并尝试初始化它们。 然后在应用程序的主循环中,获取帧数据并尝试解码: 这里我在控制台中得到了很多消息: 你能给我一些建议

  • 我有一个项目,我被要求在android中显示一个视频流,该流是原始的H.264,我正在连接到一个服务器,并将从服务器接收一个字节流。 基本上,我想知道有没有一种方法可以将原始字节发送到android的解码器并显示在Surface上? 我使用Android4.1中新的MediaCodec和MediaExtractor API成功地解码了包装在mp4容器中的H264,不幸的是,我没有找到使用这些API

  • 我从服务器接收到h264数据,我想在Android上使用mediacodec和texture view对该流进行解码。我从服务器获取数据,解析它得到SPS、PPS和视频帧数据,然后我将该数据传递给mediacodec,但函数dequeueOutputBuffer(info,100000)总是返回-1,并且我得到dequeueOutputBuffer超时。 请帮忙,我三周来一直在忙这个问题。 这是用