ffmpeg录屏并推流到服务器保存为mp4

使用ffmpeg录屏并保存mp4文件

# -framerate 10:帧率(每秒10帧)
# -f gdigrab -i desktop:windows使用gdigrab录制屏幕,不需要安装其他软件(还有一种-f dshow,要安装screen-capture-recorder,支持硬件加速)
# -f x11grab -i :0.0+0,00:linux的录屏参数(未验证)
# -vf scale=w=-1:h='min(720,ih*1)':固定高度720px,宽度与高度保持相同比例(制作为720p的视频)
# -pix_fmt yuv420p -c:v libx264:mp4的编码,yuv420p格式保证windows的media player也能播放(兼容性)
# -crf 18:码率(一般18~28,越低质量越好)
# test.mp4:保存的文件路径
ffmpeg \
  -framerate 10 \
  -f gdigrab -i desktop \
  -vf scale=w=-1:h='min(720,ih*1)' \
  -pix_fmt yuv420p -c:v libx264 \
  -crf 18 \
  test.mp4
ffmpeg -framerate 10 -f gdigrab -i desktop -vf scale=w=-1:h='min(720,ih*1)' -pix_fmt yuv420p -c:v libx264 -crf 18 test.mp4

使用rtsp(tcp)方式推流

# rtsp://192.168.1.1:8554/mystream:推流到rtsp服务器
ffmpeg \
  -framerate 10 \
  -f gdigrab -i desktop \
  -vf scale=w=-1:h='min(720,ih*1)' \
  -pix_fmt yuv420p -c:v libx264 \
  -crf 18 \
  -f rtsp -rtsp_transport tcp rtsp://192.168.1.1:8554/mystream
ffmpeg -framerate 10 -f gdigrab -i desktop -vf scale=w=-1:h='min(720,ih*1)' -pix_fmt yuv420p -c:v libx264 -crf 18 -f rtsp -rtsp_transport tcp rtsp://192.168.1.254:8554/mystream

使用ffmpeg拉流

# rtsp://192.168.1.1:8554/mystream:从rtsp服务器拉流
# -c copy:转存,不转码
ffmpeg -i rtsp://192.168.1.1:8554/mystream -c copy output.mp4

搭建rtsp服务器

  • 使用 rtsp-simple-server
  • 直接下载运行程序即可,rtsp监听端口为8554,可以通过配置文件修改

实现个人电脑录屏并传输到服务器中保存

  • 服务器运行rtsp server,源设备推流,服务器拉流,地址一样即可成功传输录屏数据
  • 此方案不需要损耗太多服务器资源,编码工作分摊到个人电脑
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容