为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?

news/2024/9/23 22:29:27/

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

问题描述

  为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?

使用javacv转封装rtsp为rtmp时出现如下问题:

[h264 @ 000000004faf7500]no frame!
[h264 @ 000000004faf7500] non-existing PPS 0 referenced
[h264 @ 000000004faf7500] non-existing PPS 0 referenced
[h264 @ 000000004faf7500] decode_slice_header error

如上问题有来自我自身项目开发,有的收集网站,有的来自读者,如有侵权,立马删除。

解决方案

  如下是上述问题的解决方案,仅供参考:


  在使用JavaCV进行RTSP到RTMP转封装时,如果出现[h264 @ 000000004faf7500] no framenon-existing PPS 0 referenceddecode_slice_header error等错误信息,通常是由于H.264视频流的参数集(Parameter Set,PPS和SPS)没有正确地传递或处理导致的。PPS和SPS是H.264视频流中的关键信息,它们包含了解码视频帧所需的基本参数。

  以下是一些可能导致这些问题的原因以及相应的解决方法:

  1. PPS和SPS丢失

    • 确保RTSP视频流中包含了PPS和SPS。如果流中没有PPS和SPS,解码器将无法解码视频帧。
  2. 不连续的PPS和SPS

    • 如果PPS和SPS在流中不连续,或者它们被错误地插入到了视频帧中间,可能会导致解码错误。
  3. 编码器问题

    • 如果RTSP视频流是由一个有缺陷的编码器生成的,可能会缺少PPS和SPS或者它们的ID不连续。
  4. 网络问题

    • 网络丢包或延迟可能导致PPS和SPS信息丢失。
  5. JavaCV配置问题

    • 检查JavaCV的配置,确保正确设置了解码器和编码器。
  6. FFmpeg版本问题

    • 如果使用的是JavaCV封装的FFmpeg,确保FFmpeg版本支持您的视频流的编码格式。
  7. 解码器不支持

    • 确保您的解码器支持H.264格式。如果不支持,可能需要安装或更新解码器。
  8. 内存分配问题

    • 在某些情况下,解码器可能因为内存分配问题而无法正常工作。
  9. 帧率或分辨率问题

    • 如果视频流的帧率或分辨率过高,可能会导致解码器无法处理。
  10. 调试和日志

    • 使用更详细的日志级别来获取更多关于错误的信息。
  11. 使用其他工具

    • 如果JavaCV无法正常工作,可以尝试使用其他工具,如GStreamer或直接使用FFmpeg命令行工具。
  12. 咨询社区

    • 如果问题依然无法解决,可以在相关社区或论坛中寻求帮助。

  要解决这个问题,您可能需要对视频流进行更深入的分析,以确定PPS和SPS是否被正确地传递。此外,您可能需要调整JavaCV的配置或使用其他工具来处理视频流。如果您能够提供更多的上下文信息,如错误日志、JavaCV的配置和RTSP视频流的详细信息,我将能够提供更具体的帮助。

  希望能够帮到有需要的你。

  PS:如若遇到采纳如下方案还是未解决的同学,希望不要抱怨&&急躁,毕竟影响因素众多,我写出来也是希望能够尽最大努力帮助到同类似问题的小伙伴,即把你未解决或者产生新Bug黏贴在评论区,我们大家一起来努力,一起帮你看看,可以不咯。

  若有对当前Bug有与如下提供的方法不一致,有个不情之请,希望你能把你的新思路或新方法分享到评论区,一起学习,目的就是帮助更多所需要的同学,正所谓「赠人玫瑰,手留余香」。

☀️写在最后

  ok,以上就是我这期的Bug修复内容啦,如果还想查找更多解决方案,你可以看看我专门收集Bug及提供解决方案的专栏「Bug调优」,都是实战中碰到的Bug,希望对你有所帮助。到此,咱们下期拜拜。

码字不易,如果这篇文章对你有所帮助,帮忙给bugj菌来个一键三连(关注、点赞、收藏) ,您的支持就是我坚持写作分享知识点传播技术的最大动力。

同时也推荐大家关注我的硬核公众号:「猿圈奇妙屋」 ;以第一手学习bug菌的首发干货,不仅能学习更多技术硬货,还可白嫖最新BAT大厂面试真题、4000G Pdf技术书籍、万份简历/PPT模板、技术文章Markdown文档等海量资料,你想要的我都有!

📣关于我

我是bug菌,CSDN | 掘金 | InfoQ | 51CTO | 华为云 | 阿里云 | 腾讯云 等社区博客专家,C站博客之星Top30,华为云2023年度十佳博主,掘金多年度人气作者Top40,51CTO年度博主Top12,掘金/InfoQ/51CTO等社区优质创作者;全网粉丝合计 20w+;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试真题、4000G PDF电子书籍、简历模板等海量资料,你想要的我都有,关键是你不来拿。



http://www.ppmy.cn/news/1446352.html

相关文章

AUTOSAR 全套英文标准

CP AUTOSAR 英文标准 CP AUTOSAR R4.2.2 英文标准 CP AUTOSAR R4.3.0 英文标准 CP AUTOSAR R4.3.1 英文标准 CP AUTOSAR R4.4.0 英文标准 CP AUTOSAR R1911 英文标准 CP AUTOSAR R2011 英文标准 CP AUTOSAR R2111 英文标准 CP AUTOSAR R2211 英文标准 CP AUTOSAR R2311 英文标准…

深度学习系列66:试穿模型IDM-VTON上手

1. 模型概述 如图,总体流程为: 输入为:衣服的编码xg;人物noise的编码xt;人物身上衣物的mask和人体pose分割(densepose);衣服部分经过两部分网络:1)高级语义网络IP-Adapter&#xff…

Qt:Qt框架的初步认识和基本使用

文章目录 Qt是什么Qt的优点Qt开发环境的基本使用对象树其他控件输入框按钮 本篇总结的是对于Qt框架的基本认识 Qt是什么 Qt框架是一个跨平台的C图形用户界面应用程序框架,框架是一群大佬发明出来的,帮助新手使用的一个内容,如果没有框架的存…

Ubuntu 18.04 安装 CMake Ceres-Solver 记录

1. 安装 CMake-3.22.1 不可卸载原有版本 CMake(防止 ROS 出现问题),只需建立软链接即可 1. 源码下载并解压wget https://cmake.org/files/v3.22/cmake-3.22.1.tar.gz tar -xvzf cmake-3.22.1.tar.gz2. 移动到合适目录sudo mv cmake-3.22.1 /u…

【大数据】LSM树,专为海量数据读写而生的数据结构

目录 1.什么是LSM树? 2.LSM树的落地实现 1.什么是LSM树? LSM树(Log-Structured Merge Tree)是一种专门针对大量写操作做了优化的数据存储结构,尤其适用于现代大规模数据处理系统,如NoSQL数据库&#xff…

介绍一下mybatis的基本配置(mybatis-config.xml)

src/main/resources/mybatis-config.xml 这句代码&#xff0c;是XML的声明&#xff0c;它指定了&#xff0c;XML的版本 和 编码方式 <?xml version"1.0" encoding"UTF-8" ?>这句代码&#xff0c;声明了XML文档类型&#xff0c;它告诉解析器&#x…

Java集合相关的List、Set、Map基础知识

目录 一、集合介绍 二、List 三、Map HashMap的数据结构 如何理解红黑树 四、set 一、集合介绍 在Java中&#xff0c;集合是一种用于存储对象的数据结构&#xff0c;它提供了一种更加灵活和强大的方式来处理和操作数据。Java集合框架提供了一系列接口和类&#xff0c;用…

docker容器练习

1.修改虚拟机的主机名为 docker。 [rootadmin ~]# hostnamectl set-hostname docker [rootadmin ~]# bash [rootdocker ~]# 2.修改虚拟机网卡地址&#xff0c;使其可以上外网&#xff0c;能够 ping 通 www.baidu.com [rootdocker ~]# nmcli connection modify ens160 i…