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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章