ffmpeg
ffmpeg 命令:用于对视频文档或音频档案转换格式
一、安装ffmpeg
分为两种安装方式:
1. 命令行安装
brew install ffmpeg
2. 下载压缩包安装
去 http://evermeet.cx/ffmpeg/ 下载7z压缩包,解压缩后,将ffmpeg文件拷贝到一个地方,然后在.bash_profile里面配置好环境变量
https://www.cnblogs.com/renhui/p/8458150.html
https://ffmpeg.zeranoe.com/builds/
alias ffmpeg="/Library/FFmpeg/bin/ffmpeg"
说到 m3u8 就要先说说 HLS(HTTP Live Streaming)。HLS 是 Apple 公司针对 iPhone、iPod、iTouch 等移动设备,而研发的基于 HTTP 协议的流媒体解决方案。在 HLS 技术中,Web 服务器可以向客户端提供接近实时的音视频流,但是它又是使用的标准的 HTTP 协议。所以基本上,比较大型的点播直播类服务,都是基于 HLS 的。
而该技术的原理,就是将视频文件或者视频流,进行切片(ts文件),并建立索引文件(m3u8),它支持的视频流编码为 H.264,音频流编码为 AAC。
简单来说,基于 HLS 的视频流,会将完整的视频,切割成一个个比较小的视频片段(ts 文件),然后根据协议组合成一个 m3u8 文件。这些比较小的 ts 文件,是可以单独播放的。而视频播放器,拿到 m3u8 文件之后,根据对其内 ts 片段的索引,连续播放不同的视频片段,来达到流畅的播放效果。
8. m3u8 不是视频内容的文件,它占用的磁盘空间非常的小。
9. m3u8 文件,如果其内的 ts 片段,是完整地址,则可以保存后播放,否者只能在线播放。
10. 播放器播放 m3u8 文件的时候,实际上,还是在线从线上获取的视频流进行播放,所以是存在失效的情况的。
ffmpeg 是一套可以用来记录、转换音视频,并将其转化为流的开源程序,采用 LGPL 或 GPL 协议许可证书,很多大型的音视频软件,内部都是基于 ffmpeg 的。不了解不要紧,总之知道它对操作 ffmpeg 非常的方便。
配置好 ffmpeg 的环境之后,只需要一行命令,就可以自动下载一个远端的 m3u8 文件,并且以一个 mp4 格式保存。
1. ffmpeg -i "m3u8_file_uri" "save_video.mp4"
到此,如果 m3u8 的链接正确可播放,就会开始下载,等待下载完成就可以了,最终会在指定目录下,保存 save_video.mp4 文件,它就是最终我们下载的离线视频文件。
将MP4文件转换成HLS(M3U8)命令行:
ffmpeg -re -i 好汉歌.mp4 -c copy -f hls -bsf:v h264_mp4toannexb output.m3u8
HLS的优势为:自适应码率流播(adaptive streaming)。
效果就是客户端会根据网络状况自动选择不同码率的视频流,条件允许的情况下使用高码率,网络繁忙的时候使用低码率,并且能够自动在二者之间随意切换。这对移动设备网络状况不稳定的情况下保障流畅播放非常有帮助。实现方法是服务器端提供多码率视频流,并且在列表文件中注明,播放器根据播放进度和下载速度进行自动调整。
为什么要用 TS 而不是 MP4
这是因为两个 TS 片段可以无缝拼接,播放器能连续播放,而 MP4 文件由于编码方式的原因,两段 MP4 不能无缝拼接,播放器连续播放两个 MP4 文件会出现破音和画面间断,影响用户体验。而且如果要在一段长达一小时的视频中跳转,如果使用单个 MP4 格式的视频文件,并且也是用 HTTP 协议,那么需要代理服务器支持 HTTP range request 获取大文件中的一部分。这样的话,对于代理服务器的性能来说要求较高。而 HTTP Live Streaming 则只需要根据列表文件中的时间轴找出对应的 TS 片段下载即可,不需要 range request,对代理服务器的要求小很多。所有代理服务器都支持小文件的高效缓存。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix