ffmpeg将视频转码为m3u8并加水印

之前记录过一个ffmpeg配置的,这次说说ffmpeg转m3u8

先看下面的命令

ffmpeg -i 1.mp4 -i logo.png \
-filter_complex "[1:v]scale=140:130[s];[0:v][s]overlay=0:main_h-overlay_h" \
-c:v libx264 -c:a aac -strict -2\
-hls_list_size 0 \
-t 1:30 -hls_time 10 -f hls c/c.m3u8

各参数解析:

另外可用

附上两个m3u8文件内容

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:16
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:14.199633,
lj000.ts
#EXTINF:5.040000,
lj001.ts
#EXTINF:8.480000,
lj002.ts
#EXTINF:9.440000,
lj003.ts
#EXTINF:10.000000,
lj004.ts
#EXTINF:10.000000,
lj005.ts
#EXTINF:8.120000,
lj006.ts
#EXT-X-ENDLIST

自适流播放列表

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1677946,RESOLUTION=1280x720
lj1280x720.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=707099,RESOLUTION=640x360
lj640x360.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=357103,RESOLUTION=320x180
lj320x180.m3u8

另: 加水印也可以使用如下参数替换

-vf “movie=logo.png [watermark]; [in][watermark] overlay=10:20 [out]”

还要注意参数顺序,刚开始把-filter_complex加到了后面结果报错了, 调整到前面后就没有问题;在找资料时也发现有人说做截图时由于参数位置可导致最终效率