FFMPEG
文章平均质量分 76
andylao62
这个作者很懒,什么都没留下…
展开
-
FFMPEG解析ts流
关于TS格式解析,可以参考《》,本文主要代码部分解读。建议大家熟读iso13818-1,碰到问题很多情况是因为没有熟悉标准。原创 2024-01-26 16:34:01 · 2066 阅读 · 0 评论 -
关于ffplay源码之serial变量的说明
serial翻译为连续的,在ffplay中是用于判断播放是否连续的标志,serial变量存在于自定义的多个结构体中。也就是在seek后serial会加1,会产生变化。以下为read_thread中,文件发生跳到时的操作。原创 2024-01-25 17:06:18 · 439 阅读 · 0 评论 -
ffmpeg常用指令
切片MP4生成m3u8列表命令ffmpeg -i input.mp4 -c:v libx264 -c:a aac -strict -2 -f hls output.m3u8此转换命令默认的每片(即一个ts文件)时长是2s,m3u8列表文件中默认只保存最后的5条片信息,也就是播放器在拉流时只能播最后的那5条ts视频文件。这肯定不是你想要的,那么幸运的是ffmpeg提供了更改这些相关设置的参数,如下:相关设置参数:hls_time seconds’Set the segment .原创 2021-12-22 14:43:21 · 651 阅读 · 0 评论 -
关于HLS的discontinue出现问题
1、apple 的hls方案,采用ffmpeg转码的ts流,播放时会渐渐变得音画不同步,sohu源的处理办法是每隔5分钟加一次discontinue标签,但是这个标签会导致原生播放器重启,表现得有点卡。解决办法:针对这种情况,改造播放器,不让重启,直接读取下一个流是比较好的办法。但是ffmpeg处理hls的播放存在其它一些问题:1、每遇到discontinue时,显示的播放时长会清零;2、只能在第一个discontinue前进行拖放。本文针对这个问题,对ffmpeg进行改造,使对hls源更优雅的适配。原创 2021-09-16 16:55:30 · 1888 阅读 · 0 评论 -
ffmpeg下HLS解析过程
HLS (HTTP Live Streaming)是Apple的动态码率。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。它的工作原理是将一个大的媒体文件进行分片,将该分片文件资源路径记录于 m3u8 文件(即 playlist)内。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。原创 2021-09-16 09:20:29 · 502 阅读 · 0 评论 -
TS文件格式详解及解封装过程
简要ts是一种封装格式,全名为MPEG-TS,文件分为三层:ts层(Transport Stream)、pes层(Packet Elemental Stream)、es层(Elementary Stream)。es层就是音视频数据,pes层是在音视频数据上加了时间戳等对数据帧的说明信息,ts层是在pes层上加入了数据流识别和传输的必要信息(header)。相关概念PAT:Program Association Table,节目关联表PMT:Program Map Table,节目映射表E原创 2021-09-06 17:35:52 · 11798 阅读 · 0 评论 -
ffmpeg的avformat_find_stream_info分析过程(十一)
/* 读取媒体文件的包来获取流信息。这个方法对于没有头部的文件格式也是有用的,例如MPEG。 * 对于MPEG-2这种帧模型重复的类型,这个方法也会计算真实帧率。 * * 该逻辑文件地址不被这个方法更改。 * 检查的数据包可能会被缓冲以用于以后处理。 * * @参数 ic 媒体文件句柄(格式上下文) * @参数 options ... * @成功返回值大于0 * @注意:这个方法不保证打开所有的编解码器,所以非空的options参数将会返回一个完全合理的行为。 * * 为了让用户.原创 2021-06-10 17:21:16 · 914 阅读 · 0 评论