項(xiàng)目情況
1. 我們?cè)趙indows 系統(tǒng)下采用ffmpeg去采集筆記本電腦攝像頭和麥克風(fēng)的時(shí)候需要先獲取攝像頭和麥克風(fēng)的信息
2. 因?yàn)槊颗_(tái)電腦攝像頭和麥克風(fēng)的信息不一樣,如果名稱不對(duì)會(huì)導(dǎo)致不能采集?
解決方案
bat腳本實(shí)現(xiàn),先去獲取攝像頭信息,篩選出攝像頭的信息,作為變量傳入到ffmpeg采集命令中,去進(jìn)行采集
腳本?
REM 自動(dòng)判斷權(quán)限問題,主動(dòng)獲取管理員權(quán)限
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
:begin
@echo off&setlocal enabledelayedexpansion
::method 1: 固定設(shè)備名稱
REM ::延時(shí)2秒
REM ::ping -n 1 127.0.0.1>nul
REM ffmpeg -f dshow -i audio="麥克風(fēng) (HD Webcam C310)" -ar 16000 -ac 1 %1
REM ::del /f /s /q %1
REM ::del /f /s /q plot\\data\\img\\*.*
REM ::錄制音視頻圖片
REM ::ffmpeg -f dshow -rtbufsize 200M -i video="Logitech HD Webcam C310":audio="麥克風(fēng) (HD Webcam C310)" -pix_fmt yuv420p -ar 48000 -vcodec libx264 -crf 23 -preset veryslow -x264opts b-adapt=2:bframes=0:aq-strength=1:psy-rd=0.8,0 -vsync vfr -acodec aac -bsf:a aac_adtstoasc -f flv %1 -r 1000 -f image2 plot\\data\\img\\image%%3d.jpg
::method 2: 自動(dòng)獲取設(shè)備名稱
::ffmpeg默認(rèn)輸出utf-8
ffmpeg -list_devices true -f dshow -i dummy 2>temp_utf.txt
::utf-8 轉(zhuǎn) gbk,批處理不支持utf-8文件
iconv.exe -f utf-8 -t gbk temp_utf.txt > temp_gbk.txt
for /f tokens^=2^ delims^=^" %%i in (temp_gbk.txt) do (
@REM echo %%i
echo "%%i" > tmp
goto :end
)
:end
set /p video_device=<./tmp
@REM 從臨時(shí)文件中獲取視頻采集設(shè)備名稱,去掉前后的空格
del /f /s /q mycamera7.mkv
@REM ffmpeg -f dshow -i video=%video_device:~1,-1% -vcodec libx264 mycamera7.mkv
:: 獲取電腦本機(jī)IP
for /f "tokens=16" %%i in ('ipconfig ^|find /i "ipv4"') do set ip=%%i
echo %ip%
ffmpeg -r 30 -f dshow -i video=%video_device:~1,-1% -vcodec libx264 -max_delay 100 -rtsp_transport udp -g 5 -b 700000 -f rtsp rtsp://192.168.0.88:554/live/%ip%?secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc
::刪除臨時(shí)文件
del /f /s /q temp_utf.txt
del /f /s /q temp_gbk.txt
雙擊執(zhí)行bat腳本即可
推流效果
文章來源:http://www.zghlxwxcb.cn/news/detail-549389.html
?vlc播放效果
文章來源地址http://www.zghlxwxcb.cn/news/detail-549389.html
到了這里,關(guān)于windows利用ffmpeg采集攝像頭畫面,支持服務(wù)啟動(dòng),支持一鍵啟動(dòng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!