使用 ffmpeg 进行屏幕录制

使用 ffmpeg 进行屏幕录制
ffmpeg -f gdigrab -framerate 30 -i desktop output.mkv

我使用这个命令,有两个问题:

  1. 我的屏幕可以全高清,但 output.mkv 的质量似乎很差(不是全高清)。如何以最佳质量录制屏幕?

  2. 我的命令不录制音频。如何录制音频?

答案1

如果您希望以全分辨率录制计算机的音频以及屏幕,而不是麦克风的音频(问题不清楚您想要哪一个),请按照以下说明操作:

可能需要启用设备“立体声混音(Realtek Audio)”,但就我而言,并未启用。

立体声混音允许您在 Windows 中录制计算机的音频。

  1. 进入控制面板-->硬件和声音-->声音

  2. 然后单击“录音”选项卡。

  3. 现在在设备列表中单击右键,并确保已勾选“显示禁用的设备”。然后应该会显示立体声混音。

  4. 现在右键单击它并选择“启用”。

请注意,立体声混音的全名是“立体声混音(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

相关内容