解码RTSP流或者MP4 - housekeeper-software/tech GitHub Wiki

注意事项

解码 mp4文件可能需要解封装,
  std::string bsf_name;
  if (stream->codecpar->codec_id == AV_CODEC_ID_H264) {
    bsf_name = "h264_mp4toannexb";
  } else if (stream->codecpar->codec_id == AV_CODEC_ID_HEVC) {
    bsf_name = "hevc_mp4toannexb";
  }
但是注意,如果我们使用 ffmpeg解码,则不需要解封装,否则解码器报错。其实是内部已经做了,重复做一次就错了。
如果我们使用外部解码器,则一般需要做上述的步骤。
RTSP流,一般不需要

其他

如果是 mp4封装 h264,使用h264_mp4toannexb之后,ffmpeg也能正确解码,但hevc调用hevc_mp4toannexb则解码失败
结论是,如果是ffmpeg软解,则都不要调用。均可正常解码