首页 > 其他分享 >ffmpeg播放RTSP的一点优化

ffmpeg播放RTSP的一点优化

时间:2023-06-28 11:00:41浏览次数:34  
标签:set ffmpeg RTSP tcp dict av 播放 options

简单记录一下最近使用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;
}
复制代码

标签:set,ffmpeg,RTSP,tcp,dict,av,播放,options
From: https://www.cnblogs.com/lidabo/p/17510822.html

相关文章

  • 小程序进入页面自动播放音频
    以前我开发PC和H5时知道音频/视频如果自动播放是需要静音的 小程序是不一样的1. 首先肯定是要在onLoad/onShow中调用我们准备播放用的函数 这里根据自己需求写2.重点 我们需要构建一个InnerAudioContext对象//创建内部audio上下文InnerAudioContext......
  • ffmpeg常用操作命令
    添加音轨ffmpeg-iinput.mp4-icc.MP3-c:vcopy-c:aaac-map0:v-map1:a-shortestoutput.mp4并行合并多个视频ffmpeg-ivideo1.mp4-ivideo2.mp4-ivideo3.mp4-ivideo4.mp4-filter_complex"[0:v][0:a][1:v][1:a][2:v][2:a][3:v][3:a]concat=n=4:v=1:a=1[outv]......
  • 便携式DVD播放器行业市场调研及趋势分析报告
    2023-2029全球便携式DVD播放器行业调研及趋势分析报告2022年全球便携式DVD播放器市场规模约66亿元,2018-2022年年复合增长率CAGR约为%,预计未来将持续保持平稳增长的态势,到2029年市场规模将接近73亿元,未来六年CAGR为1.3%。便携式DVD播放器(PortableDVDPlayers)又叫移动DVD播放器,简......
  • 使用ffmpeg将rtsp流转流实现h5端播放
    主要实现rtsp转tcp协议视频流播放ffmpeg下载安装(公认业界视频处理大佬)a、官网地址:www.ffmpeg.org/b、gitHub:github.com/FFmpeg/FFmp…c、推荐下载地址:ffmpeg.zeranoe.com/builds/(选择如下图)2.配置ffmpeg环境变量:a、解压缩上一步的ffmpeg文件b、配置环境变量,把ffmpeg下的bin配置......
  • 音视频处理工具FFmpeg与Java结合的简单使用
    一、什么是FFmpegFFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都......
  • FFmpeg混流及录制rtmp直播流
    1、什么是混流?混流就是把多路音视频流合成单流。准确的说,混流应该叫做混音(音频流)混画面(视频流)混流的过程包括解码、混流、编码和推流四个部分。混流这个环节包括做抖动缓冲,目的是把多路流进行画面对齐和音画同步,同时通过缓冲对抗网络抖动,以便混合成一路流以后能够达到良好的效果。......
  • ffmpeg开发程序的实例代码
    以下是一个使用ffmpeg库解码视频文件并输出每个帧的示例代码:```c++includeincludeincludeifdef__cplusplusextern"C"{endifinclude<libavcodec/avcodec.h>include<libavformat/avformat.h>include<libswscale/swscale.h>ifdef__cplusplus}endifusingn......
  • 使用flv.js直播不能自动播放的问题
    使用flv.js直播不能自动播放的问题问题使用Flv.js做直播,最近发现进入页面后不能自动播放。原因查询了一下发现是因为Chromeautoplaypolicy的影响。目前的解决方案由于项目的视频不需要播放音频,所以直接给video标签加上muted属性,进入后可以自动播放。......
  • 【Azure 媒体服务】Azure Media Player 在Edge浏览器中不能播放视频问题的分析与解决
    问题描述使用AzureMediaService制作视频点播服务,在客户端使用AzureMediaPlayer播放器在Edge浏览器中播放视频时候遇见无法播放的问题:错误信息:Thevideoplaybackwasabortedduetoacorruptionproblemorbecausethevideousedfeaturesyourbrowserdidnotsuppo......
  • 【Azure 媒体服务】Azure Media Player 在Edge浏览器中不能播放视频问题的分析与解决
    问题描述使用AzureMediaService制作视频点播服务,在客户端使用AzureMediaPlayer播放器在Edge浏览器中播放视频时候遇见无法播放的问题:错误信息:Thevideoplaybackwasabortedduetoacorruptionproblemorbecausethevideousedfeaturesyourbrowserdidnot......