![使用 ffmpeg 进行屏幕录制](https://linux22.com/image/1631566/%E4%BD%BF%E7%94%A8%20ffmpeg%20%E8%BF%9B%E8%A1%8C%E5%B1%8F%E5%B9%95%E5%BD%95%E5%88%B6.png)
ffmpeg -f gdigrab -framerate 30 -i desktop output.mkv
我使用这个命令,有两个问题:
我的屏幕可以全高清,但 output.mkv 的质量似乎很差(不是全高清)。如何以最佳质量录制屏幕?
我的命令不录制音频。如何录制音频?
答案1
如果您希望以全分辨率录制计算机的音频以及屏幕,而不是麦克风的音频(问题不清楚您想要哪一个),请按照以下说明操作:
可能需要启用设备“立体声混音(Realtek Audio)”,但就我而言,并未启用。
立体声混音允许您在 Windows 中录制计算机的音频。
进入控制面板-->硬件和声音-->声音
然后单击“录音”选项卡。
现在在设备列表中单击右键,并确保已勾选“显示禁用的设备”。然后应该会显示立体声混音。
现在右键单击它并选择“启用”。
请注意,立体声混音的全名是“立体声混音(Realtek Audio)”
现在,要以全分辨率录制音频和电脑屏幕,您可以输入:
ffmpeg -f gdigrab -framerate 30 -i desktop -c:v libx264 output.mkv -f dshow -i audio="Stereo Mix (Realtek Audio)" output.mkv
还请注意,如果您有多个声音设备(例如,我使用带显示器的笔记本电脑 - 我的 2 个设备是系统扬声器和显示器扬声器),请确保已在音量选项卡中将声音设备设置为默认设备(例如,我将将声音输出设置为笔记本电脑扬声器,因为它们是我的默认设备)。如果您没有多个声音设备,请忽略此操作。
如果这是您想要的,您现在应该能够录制您的屏幕和电脑音频,否则,如果您想要录制您的麦克风,请参阅 It Wasn't Me 的回答。
希望这可以帮助
答案2
1.使用获取麦克风设备名称@Leo Chapiro/回答
2>&1 ffmpeg -list_devices true -f dshow -i dummy -hide_banner|find "Micro"
rem :: outputs is your microphone device ::
[dshow @ 000001f8ff8d8c40] "Microphone (Realtek High Definition Audio)"
2.使用添加您的设备输入-f dshow -i audio="Microphone (Realtek High Definition Audio)" ...
ffmpeg -f gdigrab -framerate 30 -i desktop -f dshow -i audio="Microphone (Realtek High Definition Audio)" output.mkv
3.如需全高清,请尝试:
ffmpeg -f gdigrab -framerate 30 -i desktop -c:v libx264 -qp 0 output.mkv -f dshow -i audio="Microphone (Realtek High Definition Audio)" output.mkv
在循环中保存变量:audio="String"
- 在命令行中:
for /f tokens^=2delims^=^" %i in ('"2>&1 ffmpeg -list_devices true -f dshow -i dummy -hide_banner|find "Micro""')do set "_mic="%~i""
- 在 Bat/Cmd 文件中:
for /f tokens^=2delims^=^" %%i in ('"2>&1 ffmpeg -list_devices true -f dshow -i dummy -hide_banner|find "Micro""')do set "_mic="%%~i""
直接在循环中循环使用:audio="String"
- 在命令行中:
for /f tokens^=2delims^=^" %i in ('"2>&1 ffmpeg -list_devices true -f dshow -i dummy -hide_banner|find "Micro""')do
ffmpeg -f gdigrab -framerate 30 -i desktop -f dshow -i audio="%~i" output.mkv
- 在 Bat/Cmd 文件中:
for /f tokens^=2delims^=^" %%i in ('"2>&1 ffmpeg -list_devices true -f dshow -i dummy -hide_banner|find "Micro""')do
ffmpeg -f gdigrab -framerate 30 -i desktop -f dshow -i audio="%%~i" output.mkv
进一步阅读:
[√]直接显示