1、使用 FFmpeg 从网络上下载 m3u8
关键是要绕过源服务器对 header 的校验
FFmpeg可以使用 -headers
的参数指定 header,它的格式跟 curl 指定 header 的格式是一样的
ffmpeg -headers "referer: https://xx.com/" -i https://xx.com/m3u8 -c copy -y test.mp4
使用 -i
选项选择网络源地址,然后添加 -c
参数表示选择编码器类型,这里我们选择 copy 模式将原视频文件编码格式直接拷贝为新格式的视频, -y
表示如果存在与指定的文件名相同的文件就覆盖掉原有的文件,最后指定的文件名的输出文件即可完成下载。
2、使用 FFmpeg 剪辑视频
剪辑视频只需要使用 -ss
指定开始时间,然后用 -to
指定结束时间,然后使用 copy 选项复制输出即可。
ffmpeg -i test.mp4 -ss 开始时间(0:00:00.00) -c copy -y test.mp4
也可以不指定结束时间,那样的话就是从指定的开始时间一直到结束时间。
3、使用 FFmpeg 合并视频
合并视频我们一般使用的是 concat
方法,也就是建立一个文本文件,里面存放要合并的视频的名称,文件内容如下:
file 你的第一个视频的文件名
file 你的第二个视频的文件名
例如:
file test1.mp4
file test2.mp4
然后,使用 -f concat
选项来合并文件,具体命令为
ffmpeg -f concat -i file.txt -c copy output.mp4
如果出现 Unsafe file name
的错误,可以使用 -safe 0
的参数来消除,且这个参数要添加在 -f concat
的后面,命令如下
ffmpeg -f concat -safe 0 -i file.txt -c copy output.mp4