简单记录一下最近使用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; }
分类:
ffmpeg、ffplay
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
2022-06-28 通俗易懂 k8s (3):kubernetes 服务的注册与发现
2022-06-28 Kubernetes-Host网络模式,指定Pod 物理机IP
2022-06-28 微服务下的注册中心如何选择
2022-06-28 k8s、pod中的应用获取宿主机IP、PODIP等信息
2022-06-28 k8s的namespace、pod、label、deployment、service
2022-06-28 kubernetes 容器内获取Pod信息(包括:宿主主机IP)
2012-06-28 StrToInt && StrToHex && IntToString && 编辑框格式 .