ffmpeg:截图、截取动图、加水印、录屏、直播

使用ffmpeg进行截图、截取动图、加水印、录屏、直播

截取视频中的某一帧
ffmpeg -i input.mp4 -y -f image2 -ss 8 img.jpg(截取8秒的图片)
ffmpeg -i input.mp4 -y -f image2 -s 352x240 img.jpg
ffmpeg -i input.mp4 -ss 5 -vframes 1 img.jpg
ffmpeg -i input.mp4 -y -f image2 -ss 8 -t 0.001 -s 350x240 img.jpg

-y】覆盖输出文件
-f image2 】强制采用格式image2
-ss 8
】截取第8秒,然后保存成img.jpg
-s 352x240】设置导出图的尺寸
-vframes 1】设置视频的帧数(-ss 5 -vframes 1截取第5秒的第一帧,因为每一秒的画面都是由很多帧构成的,我们要告诉ffmpeg我们要这一秒的哪一帧)
-ss 8 -t 0.001】截取第八秒的图,持续0.001s

截取动图
ffmpeg -i input.mp4 -ss 00:05 -to 00:08 -s 640x320 -r 15 out.gif
ffmpeg -i input.mp4 -ss 00:05 -t 3 -s 640x320 -r 15 out.gif
ffmpeg -i input.mp4 -vframes 30 -y -f gif a.gif

-ss 00:05 -to 00:08】动图从第5秒开始,到第8秒结束
-ss 00:05 -t 3】从第5s开始,动图时间持续3s
-s 640x320】设置截取出动图的大小
-r 15】将导出动图的帧率调整到15
-vframes 30】取视频的30帧
-f gif】强制采用格式gif

给视频添加水印
ffmpeg -i input.mp4 -i picture.jpg -filter_complex "overlay=20:20" output.mp4

-i input.mp4】输入视频文件
-i picture.jpg】输入图片文件
-filter_complex “overlay=20:20”】-filter_complex这个参数是添加滤镜的,这里我们添加的滤镜是贴图,设置的位置是"overlay=20:20",意思就是距离顶部20个像素,距离左侧20个像素,也就是它会在左上角显示

录制屏幕
ffmpeg -f gdigrab -i desktop rec.mp4

-f gdigrab】-f 格式化,这里就是强制使用了gdigrab的格式和标准。gdigrab它是ffmpeg的一个组件,用来捕获视频设备,不同的操作系统它的捕获工具也不一样,在windows下ffmpeg自带默认使用的就是gdigrab,但是很可惜它只能捕获视频,不支持音频。所以我们只用它录屏。
-i desktop】输入文件为桌面,也就是录制桌面

gdigrab限制比较多,因此推荐一款软件:OBS studio,开元免费。

推流
ffmpeg -re -i rec.mp4 按照网站要求编码 -f flv “你的rtmp地址/你的直播码”

-re 】是让软件按照视频的帧率进行推流
-i rec.mp4】输入视频文件
-f flv】指定格式为flv

录制直播

有时候有主播在直播,你想要录制这段直播内容就可以采用如下命令:

ffmpeg -i "直播地址" -c copy output.flv

-i “直播地址”】输入直播地址
-c copy】复制编码器格式

获取直播地址进行播放直播

有时候我们只知道主播的直播地址,想要看这段直播,可以采用如下命令:

ffmpeg -i "直播地址" -c copy -f flv udp://127.0.0.1:1234 -c copy 123.flv
ffplay -x 640 -y 360 udp://127.0.0.1:1234
ffmpeg -i "直播地址" -f sdl "live" -c copy out.flv
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章