
FFmpeg
oj_fang
这个作者很懒,什么都没留下…
展开
-
解决FFmpeg HLS断网判断错误问题
最近小伙伴遇到了直播hls,网络断开获取不到错误码的问题。网上也有类似问题讨论,比如:现在播放hls,rtmp视频的时候,网络变化断开,播放器执行的不是error方法,而是complete这可能是FFmpeg的一个bug。同事写了个临时方案:判断当前是否播放到结尾,若不在结尾则认为是网络断开。这个方案对于点播有效,对于直播hls则无效,因为直播没有duration。这就迫使我们要寻找更...转载 2019-12-12 17:33:18 · 2147 阅读 · 0 评论 -
直播优化
越来越激烈,进过18年这波洗牌后,已经度过了蛮荒暴力期,剩下的都是在不断追求体验。通过多种方案并行,把首开降到500ms以下,希望能对大家有借鉴。背景:基于FFmpeg的ijkplayer,最新版本0.88版本。拉流协议基于http-flv,http-flv更稳定些,国内大部分直播公司基本都是使用http-flv了,从我们实际数据来看,http-flv确实稍微更快些。但是考虑到会有rtmp...转载 2019-12-11 11:18:21 · 448 阅读 · 0 评论 -
ffmpeg各种超时问题
1.设置rtsp超时AVDictionary* opts = NULL;av_dict_set(&opts, "rtsp_transport", m_bTcp ? "tcp" : "udp", 0); //设置tcp or udp,默认一般优先tcp再尝试udpav_dict_set(&opts, "stimeout", "3000000", 0);//设置超时3秒i...原创 2019-11-15 10:25:28 · 847 阅读 · 0 评论 -
AVFrame 中data与extend_data的区别
1. 什么是PCM?PCM(Pulse Code Modulation,脉冲编码调制)音频数据是未经压缩的音频采样数据裸流,它是由模拟信号经过采样、量化、编码转换成的标准数字音频数据。描述PCM数据的6个参数:Sample Rate : 采样频率。8kHz(电话)、44.1kHz(CD)、48kHz(DVD)。 Sample Size : 量化位数。通常该值为16-bit。 ...原创 2019-08-14 09:42:06 · 2229 阅读 · 0 评论 -
FFmpeg总结
根据雷神的博客与项目中用到的FFmpeg总结如下:FFMPEG中结构体很多。最关键的结构体可以分成以下几类:a)解协议(http,rtsp,rtmp,mms)AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态。URLProtocol存储输入视音频使用的封装格式。每种协议都对应一个URLProtocol结...原创 2019-08-19 13:06:19 · 497 阅读 · 0 评论 -
ffplay中音视频同步
最近在看ffmpeg相关的一些东西,以及一些播放器相关资料和代码。然后对于ffmpeg-2.0.1版本下的ffplay进行了大概的代码阅读,其中这里把里面的音视频同步,按个人的理解,暂时在这里作个笔记。在ffplay2.0.1版本里面,视频的刷新不再直接使用SDL里面的定时器了,而是在主的循环中event_loop中,通过调用函数refresh_loop_wait_event来等待事件,...转载 2019-09-07 10:58:39 · 165 阅读 · 0 评论 -
FFmpeg:开流和读流超时设计
ffmpeg的avformat_open_input()和av_read_frame默认是阻塞的*用户可以通过设置“ic->flags |= AVFMT_FLAG_NONBLOCK;”设置成非阻塞(通常是不推荐的);* 或者是设置超时时间;* 或者是设置interrupt_callback定义返回机制。开流超时设计主要注意点是要注意协议timeout:(ht...转载 2019-09-10 09:32:51 · 2573 阅读 · 0 评论 -
ffmpeg http协议 设置字段含义
16.11 httpHTTP(超文本传输协议)。该协议接受以下选项:seekable控制连接的可寻找性。如果设置为1,则资源应该是可搜索的,如果设置为0,则认为不可搜索,如果设置为-1,如果它是可搜索的,它将尝试自动检测。默认值为-1。chunked_post如果设置为1,则对帖子使用chunked Transfer-Encoding,默认值为1。cont...原创 2019-09-12 11:00:47 · 2077 阅读 · 0 评论