通过 ffmpeg 以高清分辨率录制桌面并将其流式传输到 Youtube
Record and stream desktop to Youtube by ffmpeg with HD resolution
我想通过 FFmpeg 录制桌面并将其流式传输到 Youtube。但是输出分辨率很低,最大360。
我需要更改哪些选项?
ffmpeg -framerate 30 -f x11grab -i :1 -f pulse -i default -c:v libx264 -s 1920x1080 -r 60 -b:v 5000k -crf 10 -vf format=yuv420p -c:a aac -b:a 128k -f flv rtmp://a.rtmp.youtube.com/live2/stream_key
问题
Default size for x11grab 是完整桌面或 window(旧 ffmpeg 版本为 640x480)。你的 ffmpeg 很旧,所以它以 640x480 的分辨率捕获。然后你将 640x480 放大到 1920x1080,这很糟糕而且看起来很丑。
方案一:升级ffmpeg
使用现代 ffmpeg 版本进行修复,默认情况下它将抓取整个桌面或 window 大小。参见 FFmpeg Download page for links or the FFmpeg compile and install guides。
解决方案 2:使用 -video_size
输入选项
ffmpeg -framerate 30 -video_size 1920x1080 -f x11grab -i :0.0 -f pulse -i default -c:v libx264 -b:v 5000k -maxrate 5000k -bufsize 10000k -g 60 -vf format=yuv420p -c:a aac -b:a 128k -f flv rtmp://a.rtmp.youtube.com/live2/stream_key
有关详细信息和选项,请参阅 FFmpeg x11grab documentation。
对于流式传输,它是 recommended 添加 -g
、-bufsize
和 -maxrate
以启用 VBV。
我想通过 FFmpeg 录制桌面并将其流式传输到 Youtube。但是输出分辨率很低,最大360。 我需要更改哪些选项?
ffmpeg -framerate 30 -f x11grab -i :1 -f pulse -i default -c:v libx264 -s 1920x1080 -r 60 -b:v 5000k -crf 10 -vf format=yuv420p -c:a aac -b:a 128k -f flv rtmp://a.rtmp.youtube.com/live2/stream_key
问题
Default size for x11grab 是完整桌面或 window(旧 ffmpeg 版本为 640x480)。你的 ffmpeg 很旧,所以它以 640x480 的分辨率捕获。然后你将 640x480 放大到 1920x1080,这很糟糕而且看起来很丑。
方案一:升级ffmpeg
使用现代 ffmpeg 版本进行修复,默认情况下它将抓取整个桌面或 window 大小。参见 FFmpeg Download page for links or the FFmpeg compile and install guides。
解决方案 2:使用 -video_size
输入选项
ffmpeg -framerate 30 -video_size 1920x1080 -f x11grab -i :0.0 -f pulse -i default -c:v libx264 -b:v 5000k -maxrate 5000k -bufsize 10000k -g 60 -vf format=yuv420p -c:a aac -b:a 128k -f flv rtmp://a.rtmp.youtube.com/live2/stream_key
有关详细信息和选项,请参阅 FFmpeg x11grab documentation。
对于流式传输,它是 recommended 添加
-g
、-bufsize
和-maxrate
以启用 VBV。