ffmpeg常用命令

使用cuda编码推流rtsp

1
ffmpeg -re -stream_loop -1 -i C:\\t.mp4 -rtsp_transport udp -c:v h264_nvenc -pix_fmt yuv420p -f rtsp rtsp://192.168.50.25/test

添加实时时间戳水印,精确到毫秒

1
ffmpeg -re -stream_loop -1 -i C:\\t.mp4 -vf "settb=AVTB,setpts='trunc(PTS/1K)*1K+st(1,trunc(RTCTIME/1K))-1K*trunc(ld(1)/1K)',drawtext=fontsize=30:fontcolor=white:text='%{localtime}.%{eif\:1M*t-1K*trunc(t*1K)\:d}'" -rtsp_transport udp -c:v h264_nvenc -pix_fmt yuv420p -f rtsp rtsp://192.168.50.25/test

视频按时间截取

1
ffmpeg -i test.mp4 -vcodec copy -acodec copy -ss 00:00:00 -to 00:00:10 result.mp4

如上方法会出现开头几秒中会有黑屏,是由截取不准确造成的

1
ffmpeg -ss [start] -t [duration] -i [in].mp4  -c:v libx264 -c:a aac -strict experimental -b:a 98k [out].mp4

视频导出为图片

1
ffmpeg -i video.m4s -r 60 -f image2 %05d.png

-r表示帧率

-f表示输出的格式 图片

%05d 为命名规则,以00000.png开始一直顺序命名

将多张图片合并为gif

1
ffmpeg -r 5 -i %03d.png 11.gif

-r 设置帧率

png转rgb

1
ffmpeg -i 1.png -pix_fmt argb 1.rgb

输出扩展名不重要

pix_fmt支持的格式可以使用ffmpeg -pix_fmts查看

显示rgb图像

1
ffplay -pix_fmt argb -video_size wxh 1.rgb

rgb转png

1
ffmpeg -s wxh -pix_fmt argb -i 1.rgb 2.png

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!