推流
ffmpeg -re -i a. mp4 -c copy -f flv rtmp:
-re 按照时间戳顺序推流 不加的话直接把所有文件都推过去
-f 输出格式
-c 音视频格式 copy 与源流一样
循环推流
ffmpeg -threads 2 -re -fflags +genpts -stream_loop -1 -i ./test.mp4 -c copy test.flv
推完一次会停止几十秒之后再重推
-stream_loop -1 flag before the input (-i):
The -fflags +genpts
will regenerate the pts timestamps so it loops smoothly, otherwise the time sequence will be incorrect as it loops.
FFmpeg >= 2.8 .4 is required in this case.
ffmpeg -re -safe 0 -f concat -i test. txt -vcodec copy -acodec copy -f flv rtmp:
-safe 0 可以用绝对路径,否则只能用相对路径
cat test. txt
file 'a.mp4'
file 'a.mp4'
file 'a.mp4'
捕捉桌面推流
ffmpeg -f gdigrab -framerate 30 -offset_x 0 -offset_y 0 -video_size 1920 * 1080 -i desktop -b 3000 k -f flv rtmp:
模糊水印
ffmpeg.exe -i out .flv -vf delogo=10 :20 :200 :300 :0 -f flv pl.flv
10 离左边距 0 左上角
20 离上边距 0 左上角
200 模糊区域的宽
300 模糊区域的高
添加水印
ffmpeg -re -i a.flv -vf "movie=1.png,scale=200:300[watermask ];[in ][watermask ] overlay=50:100[out]" -f flv rtmp://xxx
200 水印宽
300 水印高
50 水印位置 离左边距
100 水印位置 离上边距
截图
ffmpeg -ss 01 :00 :00 -i a. mp4 -t 00 :10 :00 -r 0.2 -f image2 ll\ i-% 3 d. jpg
recorder rec {
record keyframes;
record_max_frames 1 ;
record_interval 5 s;
record_suffix . jpg;
record_path /usr/local /sms/rec;
record_unique on ;
record_lock on ;
exec_record_done /usr/local /sms/sbin/ffmpeg -i $path -r 1 -f image2 -y $path ;
on_record_done http:
}
画中画
ffmpeg -i a.mp4 -i a.mp4 -filter_complex "[1:v]scale=w=176:h=144:force_ original_aspect_ ratio=decrease[ckout ];[0:v ][ckout ]overlay=x=10:y=0[out]" -map "[out]" -movflags faststart b.mp4