一、前言
采集电脑屏幕桌面并推流一般是用来做共享桌面、远程协助、投屏之类的应用,最简单入门的做法可能会采用开个定时器或者线程抓图,将整个屏幕截图下来,然后将图片传出去,这种方式很简单但是性能要低不少,一般采用ffmpeg来做桌面推流的居多,毕竟如果不采用代码直接ffmpeg一行命令即可(ffmpeg -f gdigrab -r 30 -i desktop -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f rtsp -g 5 -an rtsp://192.168.0.110:6907/stream), 最起码这个还没开始写代码直接就可以体验起来这个感觉很好。很多开源项目,就因为无法保证直接编译就能跑起来,导致熄火,都跑不起来何来的看下去的兴趣,尤其是初学者而言更是如此。
采集大致步骤:文章来源:https://www.toymoban.com/news/detail-438688.html
- 查找格式 av_find_input_format,参数 gdigrab/x11grab/avfoundation
- 打开桌面 avformat_open_input,参数 desktop
- 查找视频流 av_find_best_stream
- 查找解码器 avcodec_find_decoder
- 打开解码器 avcodec_open2
- 循环读取 av_read_frame
- 解码视频 avcodec_send_packet/avcodec_receive_frame
- 关闭释放 avcodec_free_context/avformat_close_input
推流大致步骤:文章来源地址https://www.toymoban.com/news/detail-438688.html
- 创建输出 avformat_alloc_output_context2
- 创建
到了这里,关于Qt音视频开发43-采集屏幕桌面并推流(支持分辨率/矩形区域/帧率等设置/实时性极高)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!