ffmpeg播放RTSP的一点优化
简单记录一下最近使用ffmpeg播放RTSP做的一点参数优化。
先做如下定义:
AVDictionary* options = NULL;
1.画质优化
原生的ffmpeg参数在对1920x1080的RTSP流进行播放时,花屏现象很严重,根据网上查的资料,可以通过增大“buffer_size”参数来提高画质,减少花屏现象
如:
av_dict_set(&options, "buffer_size", "1024000", 0);
2.RTSP连接不上导致卡死的问题
原生的ffmpeg参数在打开RTSP流时,若连接不上,会出现卡死在打开函数的情况,在有些情况下这是很不好的,可以通过设置超时来改变卡死的情况
如设置20s超时:
av_dict_set(&options, "stimeout", "20000000", 0); //设置超时断开连接时间
3.其他
可以设置的参数还有很多,如可以设置连接为TCP,设置最大延时等等
av_dict_set(&options, "max_delay", "500000", 0); av_dict_set(&options, "rtsp_transport", "tcp", 0); //以udp方式打开,如果以tcp方式打开将udp替换为tcp
例子:
AVDictionary* options = NULL; av_dict_set(&options, "buffer_size", "1024000", 0); av_dict_set(&options, "max_delay", "500000", 0); av_dict_set(&options, "stimeout", "20000000", 0); //设置超时断开连接时间 av_dict_set(&options, "rtsp_transport", "tcp", 0); //以udp方式打开,如果以tcp方式打开将udp替换为tcp if(avformat_open_input(&pFormatCtx,url.c_str(),NULL,&options)!=0){ printf("Couldn't open input stream.\n"); return false; }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)