ffmpeg
建议使用官网最新的 ffmpeg.exe API文档
直播桌面
ffmpeg
-f gdigrab -video_size 1920x1080 -i desktop
-r 20 -vf scale=1920x1080 -vcodec libx264 -preset ultrafast -pix_fmt yuv420p
-f flv rtmp://streampush.cnki.net/org10/xxxxxxxxxx
代码解释说明:
- 添加摄像头输入HD Pro Webcam C920、-video_size 表示取桌面大小为1920x1080,如果取全屏,则该参数可省略
- -r 强制设置输出帧率为20、-vf scale 缩放(感觉和-s参数类似,设置视频最后输出的分辨率)、-vcodec 设置输出视频编码为 libx264、-preset 设置编码速度为极快(ultrafast)
- -f flv 设置输出地址为直播推流地址
直播桌面+音频
ffmpeg
-f gdigrab -i desktop
-f dshow -i audio="麦克风 (HD Pro Webcam C920)"
-s 1920x1080
-r 20
-vcodec libx264
-preset ultrafast
-acodec aac
-ac 2
-ar 44100
-ab 128k
-pix_fmt yuv420p
-f flv rtmp://streampush.cnki.net/org10/xxxxxxx
代码解释说明:
- 添加桌面输入
- 添加音频输入
- -s 表示输出分辨率为 1920*1080(类似上文的-vf scale) 、-r 强制设置输出帧率为20、-vcodec 设置输出视频编码为 libx264、-preset 设置编码速度为极快(ultrafast)、-acodec 设置音频编码为 aac 、-ac 设置声道为立体声 、-ar 设置音频采样率为44100 、-ab 设置比特率为 128k bit/s 、 -pix_fmt 设置视频编解码格式为 yuv420p、
- -f flv 设置输出地址为直播推流地址
直播摄像头
ffmpeg
-f dshow -i video="HD Pro Webcam C920"
-r 20 -s 640x480 -vcodec libx264 -preset ultrafast
-f flv rtmp://streampush.cnki.net/org10/xxxxxxxxxx
代码解释说明:
- 添加摄像头输入HD Pro Webcam C920
- -r 强制设置输出帧率为20、-s 设置输出分辨率为 640x480、-vcodec 设置输出视频编码为 libx264、-preset 设置编码速度为极快(ultrafast)
- -f flv 设置输出地址为直播推流地址
直播摄像头+音频
ffmpeg
-f dshow -i video="HD Pro Webcam C920"
-f dshow -i audio="麦克风 (HD Pro Webcam C920)"
-r 20 -vcodec libx264 -preset ultrafast -acodec aac -ac 2 -ar 44100 -ab 128k -pix_fmt yuv420p -s 640x480
-f flv rtmp://streampush.cnki.net/org10/xxxxxxxxx
代码解释说明:
- 添加摄像头输入HD Pro Webcam C920
- 添加音频输入 麦克风 (HD Pro Webcam C920)
- -r 强制设置输出帧率为20、-vcodec 设置输出视频编码为 libx264、-preset 设置编码速度为极快(ultrafast)、-acodec 设置音频编码为 aac 、-ac 设置声道为立体声 、-ar 设置音频采样率为44100 、-ab 设置比特率为 128k bit/s 、 -pix_fmt 设置视频编解码格式为 yuv420p、-s 设置输出分辨率为 640x480、
- -f flv 设置输出地址为直播推流地址
直播画中画+音频
ffmpeg
-f gdigrab -i desktop
-f dshow -i video="HD Pro Webcam C920"
-f dshow -i audio="麦克风 (HD Pro Webcam C920)"
-filter_complex "[1:v]scale=w=320:h=240:force_original_aspect_ratio=decrease[top];[0:v][top]overlay=1600:840"
-vcodec libx264
-preset ultrafast
-acodec aac
-movflags faststart
-ar 44100
-ac 2
-s 1920x1080
-f flv rtmp://streampush.cnki.net/org10/xxxxxxxxxx
代码解释说明:
- 添加桌面输入
- 添加摄像头视频输入
- 添加音频输入 麦克风 (HD Pro Webcam C920)
- -filter_complex 混合视频参数 后面的双引号中都是对应的内容、[1:v]scale=w=320:h=240:force_original_aspect_ratio=decrease[top] [1:v]表示取视频的下标为1的视频(本例有两个:0桌面、1摄像头),scale表示缩放为320*240 、force_original_aspect_ratio=decrease、表示等比例缩放、[top]相当于这个视频修改后的别名、[0:v][top]overlay=1600:840表示覆盖,第0层在最下方、top层在上方,1600:840表示top层的偏移量,即top层的左上角和第0层左上角的偏移量,0:0表示左上角重合、
- -r 强制设置输出帧率为20、-vcodec 设置输出视频编码为 libx264、-preset 设置编码速度为极快(ultrafast)、-acodec 设置音频编码为 aac 、-ac 设置声道为立体声 、-ar 设置音频采样率为44100 、-ab 设置比特率为 128k bit/s 、 -pix_fmt 设置视频编解码格式为 yuv420p、-s 设置输出分辨率为 640x480、
- -f flv 设置输出地址为直播推流地址
- orce_original_aspect_ratio:保持视频宽高比的方法,可以使用如下值:(1)disable——不保持宽高比;(2)decrease——需要的时候降低宽或者高;(3)increase——需要的时候提高宽或者高。