【问题标题】:Why my App cannot decode the RTSP stream?为什么我的应用程序无法解码 RTSP 流?
【发布时间】:2015-09-23 09:13:30
【问题描述】:

我使用 live555 接收 RTP 视频帧(以 H264 编码的帧)。我使用 Live555 打开我的本地 .sdp 文件来接收帧数据。刚刚看到DummySink::afterGettingFrame被不断调用。如果DummySink中的fReceiveBuffer是正确的,为什么FFMPEG不能解码帧?我的代码错了?

这是我的代码片段: http://paste.ubuntu.com/12529740/

函数avcodec_decode_video2总是返回失败,其值小于零

fReceiveBuffer 是否存在一帧视频?

哦,这是我需要打开相关视频解码器的 FFMPEG 初始化代码: http://paste.ubuntu.com/12529760/

【问题讨论】:

  • 请提问让您的问题更容易理解。描述你已经尝试过的东西。让我们可以理解方法。
  • @SebastianAnnies 最后,我找到了问题的解决方案。谢谢你提醒我这个

标签: c++ ffmpeg rtsp rtp live555


【解决方案1】:

再次阅读H264相关文档,发现I-frame(IDR)需要将SPS/PPS以0x00000001分隔的方式插入到header中,解码器有能力正确解码帧。这是一个相关的解决方案 FFmpeg can't decode H264 stream/frame data

Decoding h264 frames from RTP stream

现在,我的应用程序工作正常,它可以解码帧并将其转换为 OSD 图像以显示到屏幕上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-25
    • 2018-07-05
    • 1970-01-01
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    相关资源
    最近更新 更多