ffmpeg 录制和合并的操作

uuid=NO01-2022
input=http://plyzb10.live.weibo.com/alicdn/4730706200364615.m3u8
outputfile=yzh.m3u8

[ ! -d $uuid ] && mkdir -p $uuid

ffmpeg -y \
-i $input \
-c:v copy -c:a copy \
-reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_delay_max 2 \
-f segment -segment_time 10 \
-segment_list $uuid/$outputfile \
-map 0 -strftime 1 \
$uuid/%Y%m%d%H%M%S.ts \
-f flv \
-c:v copy -c:a copy \
$uuid/record.flv

可以实现流的录制,并按时间进行ts切片,同时录制为 record.flv。

可以先判断原始流的类型,如果原始流不是期望的编码类型,可以修改 copy 参数为需要的编码类型

>ts.list
for i in `\ls *.ts | sort -V`; do echo "file '$i'"; done >> ts.list
ffmpeg -y -f concat -i ts.list record.flv

可以实现将多个 ts 文件合并为一个独立的文件