...
分享

ffmpeg将m3u8转换成mp4

有两种方法可以实现,
第一种:直接使用ffmpeg转成mp4 (缺点:ffmpeg下载m3u8太慢了)
第二种:自行下载m3u8到本地,然后由ffmpeg转,下载ts的时候可以使用多线程,速度大大的提升了。

一、直接使用ffmpeg转mp4 缺点:慢

命令:

ffmpeg -y -allowed_extensions ALL -protocol_whitelist "file,crypto,http,https,tcp" -i "https://xxx/xxx.m3u8" -c copy "./output.mp4"
  • -y 如果遇到文件覆盖或者其他需要确认的地方会自动帮你确认
  • -allowed_extensions ALL 允许所有文件扩展名
  • -protocol_whitelist "file,crypto,http,https,tcp" 允许你指定哪些协议可以被用于输入或输出操作
    file - 本地文件系统
    crypto - 加密协议
    http - 超文本传输协议
    https - 安全超文本传输协议
    tcp - 传输控制协议
    udp - 用户数据报协议
    rtsp - 实时流协议
    rtmp - 实时消息传输协议
    srt - 安全可靠传输协议
  • -i "https://xxx/xxx.m3u8" m3u8地址,即输入来源地址
  • -c copy 对编码不做任何修改,直接复刻过来
  • "./output.mp4" 本地保存路径

二、自己下载m3u8的TS切片,然后本地转换

下载m3u8的切片就不详说了,主要原理就是打开.m3u8文件,解析ts和key的路径,保存在本地目录中。
注意:保存本地的时候,修改m3u8中的key和ts的路径!!!
使用本地转换命令:

ffmpeg -y -allowed_extensions ALL -protocol_whitelist "file,crypto" -i "/root/index.m3u8" -c copy "/root/index.mp4"

-protocol_whitelist 就只需要设置file和crypto,本地目录不需要http和tcp

php curl详解及完整的一个curl类库 一个简单的nodejs多任务线程池的实现类
biu biu biu
Ubuntu 搭建SVN服务器(SVN Server) android 备份system.img dd命令的使用 android 安卓 adb 禁止系统休眠 android 挂载可读写system分区 Read-only file system Linux命令大全(手册)