FFmpeg中Linux設備操作
1特铝、Linux下查看設備列表
./ffmpeg -hide_banner -devices
- 輸入設備:fbdev暑中、lavfi壹瘟、oss鲫剿、video4linux2、v4l2
- 輸出設備:fbdev稻轨、oss灵莲、video4linux2、v4l2
2殴俱、Linux采集設備fbdev參數
ffmpeg -h demuxer=fbdev
- framerate:采集時視頻圖像的刷新幀率政冻,默認值為25
通過獲得FrameBuffer設備圖像數據進行編碼然后推流或錄制:
ffmpeg -framerate 30 -f fbdev -i /dev/fb0 output.mp4
命令行執(zhí)行后,Linux系統(tǒng)會獲取終端中的圖像线欲,而不是桌面圖像明场。
3、Linux采集設備v4l2參數
ffmpeg -h demuxer=v4l2
- standard:設置TV標準李丰,僅用于模擬器分析幀時使用
- channel:設置TV通道苦锨,僅用于模擬器分析幀時使用
- video_size:設置采集視頻幀大小
- pixel_format:設置采集視頻的分辨率
- input_format:設置采集視頻的分辨率
- framerate:設置采集視頻的幀率
- list_formats:列舉輸入視頻信號的信息
- list_standards:列舉標準信息(與standard配合使用)
- timestamps:設置時間戳類型
- ts:設置模擬器分析幀時使用的時間戳
- use_libv4l2:使用第三方庫libv4l2選項
使用FFmpeg采集Linux下的v4l2設備時,主要用來采集攝像頭趴泌,而攝像頭通常支持多種像素格式舟舒,有些還支持直接輸出已經編碼好的H.264數據。
如嗜憔,輸出輸入設備的format信息:
ffmpeg -hide_banner -f v4l2 -list_formats all -i /dev/video0
將攝像頭采集為視頻文件:
ffmpeg -hide_banner -s 1920x1080 -i /dev/video0 output.avi
4秃励、Linux采集設備x11grab參數
ffmpeg -h demuxer=x11grab
- draw_mouse:支持繪制鼠標光標
- follw_mouse:跟蹤鼠標軌跡數據
- framerate:輸入采集的視頻幀率
- show_region:獲得輸入桌面的指定區(qū)域
- region_border:當show_region為1時,設置輸入指定區(qū)域的邊框的粗細程度
- video_size:輸入采集視頻的分辨率
FFmpeg通過x11grab錄制屏幕時吉捶,輸入設備的設備名規(guī)則如下:
[ 主機名 ] : 顯示編號 id. 屏幕編號 id [ + 起始 x 軸 , 起始 y 軸 ]
其中夺鲜,主機名、起始x軸與起始y軸均為可選參數呐舔。
(1)桌面錄制
ffmpeg -f x11grab -framerate 25 -video_size 1366x768 -i :0.0 out.mp4
設置輸入幀率為25币励,圖像分辨率為1366x768,采集的設備為“0.0”滋早,輸出文件為out.mp4榄审。
(2)桌面錄制指定起始位置
ffmpeg -f x11grab -framerate 25 -video_size 352x288 -i :0.0+300,200 out.mp4
通過參數“:0.0+300,200”指定x坐標為200,y坐標為200杆麸,實現指定區(qū)域的錄制搁进。
(3)桌面錄制帶鼠標記錄的視頻
ffmpeg -f x11grab -video_size 1366x768 -follow_mouse 1 -i :0.0 out.mp4
通過“follow_mouse”參數指定視頻錄制中帶鼠標。