一、查詢系統(tǒng)中 ffmpeg 可錄制的音視頻輸入設(shè)備
在 Windows 系統(tǒng)中 , 使用 ffmpeg 命令 錄制 音視頻 , 需要先獲取 系統(tǒng)的 音視頻設(shè)備 信息 , 錄制 音視頻 本質(zhì)上是從 系統(tǒng)音視頻設(shè)備 中獲取數(shù)據(jù) ;
執(zhí)行
ffmpeg -list_devices true -f dshow -i dummy
命令 , 可以獲取 系統(tǒng)中 ffmpeg 可用的 DirectShow 音視頻輸入設(shè)備 ;
命令參數(shù)解析 :
-
-list_devices true
: 列出所有 ffmpeg 的 指定類型的可用設(shè)備 ; -
-f dshow
: 設(shè)置 輸入設(shè)備 類型為 dshow , 這是 DirectShow 的簡稱 , DirectShow 是 Windows 的 音視頻設(shè)備管理 框架 ; -
-i dummy
: -i 表示 ffmpeg 輸入文件或設(shè)備 , dummy 指的是虛擬的輸入設(shè)備 , 該參數(shù)的作用是 指定 ffmpeg 可用的 dshow 虛擬輸入設(shè)備。
執(zhí)行結(jié)果如下 :
[dshow @ 000001e0034ade00] DirectShow video devices (some may be both video and audio devices)
[dshow @ 000001e0034ade00] Could not enumerate video devices (or none found).
[dshow @ 000001e0034ade00] DirectShow audio devices
[dshow @ 000001e0034ade00] "立體聲混音 (Realtek(R) Audio)"
[dshow @ 000001e0034ade00] Alternative name "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{348B8A31-CF2E-42D5-A6B2-862A966A1ED0}"
dummy: Immediate exit requested
上述命令輸出結(jié)果中 ,
- 視頻設(shè)備 DirectShow video devices 的查詢結(jié)果是 " Could not enumerate video devices (or none found). " 沒有找到可用的視頻設(shè)備 ;
- 音頻設(shè)備 DirectShow audio devices 的查詢結(jié)果是 “立體聲混音 (Realtek? Audio)” 可使用該設(shè)備錄制音頻 ;
二、使用 ffmpeg 命令錄制音視頻數(shù)據(jù)
1、錄制視頻數(shù)據(jù)命令
執(zhí)行
ffmpeg -f gdigrab -framerate 30 -offset_x 0 -offset_y 0 -video_size 1920x1080 -i desktop -c:v libx264 -preset ultrafast output.mp4
命令 , 可以在 Windows 中 , 捕獲視頻數(shù)據(jù) ,
上述命令參數(shù)解析 :
-
-f gdigrab
: 設(shè)置 錄制視頻 的 輸入格式為 gdigrab , Windows 上使用該方式捕獲視頻 , Linux 中設(shè)置的是-f x11grab
參數(shù) ; -
-framerate 30
: 設(shè)置 錄制屏幕 的 幀率 為 30 FPS ; -
-offset_x 0 -offset_y 0
: 設(shè)置 錄制區(qū)域的偏移量 , 也就是 視頻的左上角 所在的 屏幕中的位置 , 這里設(shè)置為屏幕的左上角 , 配合下面的 1920x1080 也就是全屏錄制 ; -
-video_size 1920x1080
: 設(shè)置 錄制視頻尺寸為 1920x1080 , 這也是屏幕的分辨率 ; -
-i desktop
: 設(shè)置錄制視頻的 輸入設(shè)備或文件 為系統(tǒng)桌面 ; -
-c:v libx264
: 設(shè)置 視頻編碼器 為 libx264 ; -
-preset ultrafast
: 設(shè)置編碼速度為 ultrafast ;
執(zhí)行過程中 , 最后一行實時動態(tài)更新當前的 幀數(shù) , fps , 大小 等參數(shù) ;
執(zhí)行結(jié)果如下 , 輸出的 output.mp4 文件屬性如下 :
2、錄制音頻數(shù)據(jù)命令
執(zhí)行
ffmpeg -f dshow -i audio="立體聲混音 (Realtek(R) Audio)" -c:a aac output.aac
命令 , 執(zhí)行過程中 會停在一行中 , 實時顯示視頻錄制的信息 ,
參數(shù)解析 :
-
-f dshow
: 指定輸入設(shè)備類型為 dshow , 即 DirectShow 設(shè)備 , 在 Linux 中設(shè)置-f x11grab
參數(shù) ; -
-i audio="立體聲混音 (Realtek(R) Audio)"
: 設(shè)置 音頻輸入設(shè)備為 系統(tǒng)聲音 ; -
-c:a aac
: 設(shè)置 音頻編解碼器 為 AAC 格式 ;
按下 Ctrl + C 組合鍵后 , 就會終止音頻錄制 ;
3、同時錄制音頻和視頻數(shù)據(jù)命令
執(zhí)行
ffmpeg -f gdigrab -framerate 30 -offset_x 0 -offset_y 0 -video_size 1920x1080 -i desktop -f dshow -i audio="立體聲混音 (Realtek(R) Audio)" -c:v libx264 -c:a aac -preset ultrafast -strict experimental output.mp4
命令 , 可以同時錄制 視頻 和 音頻 到 輸出文件中 , 錄制視頻的命令 與 上面的命令參數(shù)相同 , 只是在上述錄制視頻的基礎(chǔ)上 , 增加了 -f dshow -i audio="立體聲混音 (Realtek(R) Audio)"
選項 ,
這個音頻的設(shè)備 是通過 執(zhí)行
ffmpeg -list_devices true -f dshow -i dummy
命令 獲得的 ;
執(zhí)行過程中 , 在最后一行顯示實時錄制信息 ;
按下 Ctrl + C 鍵 停止錄制 , 錄制后的視頻可以正常播放 ;文章來源:http://www.zghlxwxcb.cn/news/detail-857928.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-857928.html
到了這里,關(guān)于【FFmpeg】音視頻錄制 ① ( 查詢系統(tǒng)中 ffmpeg 可錄制的音視頻輸入設(shè)備 | 使用 ffmpeg 命令錄制音視頻數(shù)據(jù) | 錄制視頻數(shù)據(jù)命令 |錄制音頻數(shù)據(jù)| 同時錄制音頻和視頻數(shù)據(jù)命令 )的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!