天天看点

ffmpeg m3u8生成 剪辑及格式转换

使用 ffmpeg 工具, 生成 m3u8 文件

ffmpeg -re -i 03.ts -c copy -f hls -hls_base_url /Users/admin/Downloads/download/video/03/out -start_number 0 -hls_time 9 -hls_list_size 0 output.m3u8
           
参数说明:

-hls_base_url m3u8 里 ts文件的相对路径/绝对路径

-start_number 0 ts 起始编号

-hls_time 9 每个 ts 播放时间, 默认值为2, 单位为秒

-hls_list_size 0 M3U8列表中的TS切片的个数。其中设置为0的时候,将包含所有

下载 m3u8 文件
ffmpeg -i url.m3u8 -acodec copy -vcodec copy video.mp4
           
替换例子
ffmpeg -i https://m3u8.pps11.com/wodeshipin_water_m3u8/guochanjingxuan/83_20200226053354485/83_20200226053354485.m3u8 -acodec copy -vcodec copy video.mp4
           
视频剪切
ffmpeg -ss 5 -i video.mp4 -t 4 -c copy -copyts output.mp4
ffmpeg -ss 00:05:00 -i video.mp4 -to 00:09:00 -c copy output.mp4
           

说明事项:

  • 值得注意的是,ffmpeg 为了加速,会使用关键帧技术, 所以有时剪切出来的结果在起止时间上未必准确。
  • 通常来说,把 -ss 选项放在 -i 之前,会使用关键帧技术;
  • 把 -ss 选项放在 -i 之后,则不使用关键帧技术。
  • 如果要使用关键帧技术又要保留时间戳,可以加上 -copyts 选项:
视频分辨率转换
fmpeg -i output.mp4 -vf scale=1334:750 output_640.mp4 -hide_banner
           
mp4 转 m3u8
ffmpeg -i output.mp4 -c copy -bsf:v h264_mp4toannexb -map 0 -f segment -segment_time 6 -segment_format mpegts  -segment_list out/index.m3u8  out/video-%03d.ts