录制桌面
使用GDI screengrabber可以录制主屏幕的内容

You can also use gdigrab as input device to grab video from the Windows screen.

To capture all your displays as one big contiguous display:

ffmpeg -f gdigrab -framerate 30 -i desktop output.mkv
If you want to limit to a region, and show the area being grabbed:

ffmpeg -f gdigrab -framerate 30 -offset_x 10 -offset_y 20 -video_size 640×480 -show_region 1 -i desktop output.mkv
To grab the contents of the window named “Calculator”:

ffmpeg -f gdigrab -framerate 30 -i title=Calculator output.mkv
存在问题:缩放时耗费时间过长,导致帧率不高
2.使用screen capture recorder无法全屏录制桌面

录制音频
ffmpeg -f dshow -i audio=”virtual-audio-capturer” -acodec libmp3lame window.mp3
avdevice_register_all();

pInputFmt = av_find_input_format(“dshow”);
if (avformat_open_input(&pFmtCtx, “audio=virtual-audio-capturer”, pInputFmt, &pOptions) < 0) {
av_log(nullptr, AV_LOG_ERROR, “cant not open input file.\n”);
return -1;
}

av_dump_format(pFmtCtx, 0, “audio=virtual-audio-capturer”, 0); 
录制摄像头
查看输入设备:

ffmpeg.exe -f dshow -list_devices true -i dummy
1
查看摄像头图像:

ffplay.exe -f dshow -video_size 640×480 -i video=”HD WebCam”
1
avdevice_register_all();
pInputFmt = av_find_input_format(“dshow”);
int ret = avformat_open_input(&m_InputFmtCtx, “video=HD WebCam”, pInputFmt, nullptr);
if (ret < 0)
{
av_log(nullptr, AV_LOG_ERROR, “Could not open input file.\n”);
goto ERROR_PROC;

录制麦克风
播放麦克风声音:

ffplay.exe -f dshow -i audio=”麦克风 (Realtek High Definition Audio)”
录制USB摄像头
ffmpeg.exe -f dshow -video_size 1280×720 -i video=”HD USB Camera” -vcodec copy -rtsp_transport tcp -f rtsp rtsp://localhost/test
————————————————
版权声明:本文为CSDN博主「zimengyu2020」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zimengyu2020/article/details/106035258/