使用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 server,源设备推流,服务器拉流,地址一样即可成功传输录屏数据
- 此方案不需要损耗太多服务器资源,编码工作分摊到个人电脑