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

代码解释说明:

  1. 添加摄像头输入HD Pro Webcam C920、-video_size 表示取桌面大小为1920x1080,如果取全屏,则该参数可省略
  2. -r 强制设置输出帧率为20、-vf scale 缩放(感觉和-s参数类似,设置视频最后输出的分辨率)、-vcodec 设置输出视频编码为 libx264、-preset 设置编码速度为极快(ultrafast)
  3. -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

代码解释说明:

  1. 添加桌面输入
  2. 添加音频输入
  3. -s 表示输出分辨率为 1920*1080(类似上文的-vf scale) 、-r 强制设置输出帧率为20、-vcodec 设置输出视频编码为 libx264、-preset 设置编码速度为极快(ultrafast)、-acodec 设置音频编码为 aac 、-ac 设置声道为立体声 、-ar 设置音频采样率为44100 、-ab 设置比特率为 128k bit/s 、 -pix_fmt 设置视频编解码格式为 yuv420p、
  4. -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

代码解释说明:

  1. 添加摄像头输入HD Pro Webcam C920
  2. -r 强制设置输出帧率为20、-s 设置输出分辨率为 640x480、-vcodec 设置输出视频编码为 libx264、-preset 设置编码速度为极快(ultrafast)
  3. -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

代码解释说明:

  1. 添加摄像头输入HD Pro Webcam C920
  2. 添加音频输入 麦克风 (HD Pro Webcam C920)
  3. -r 强制设置输出帧率为20、-vcodec 设置输出视频编码为 libx264、-preset 设置编码速度为极快(ultrafast)、-acodec 设置音频编码为 aac 、-ac 设置声道为立体声 、-ar 设置音频采样率为44100 、-ab 设置比特率为 128k bit/s 、 -pix_fmt 设置视频编解码格式为 yuv420p、-s 设置输出分辨率为 640x480、
  4. -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

代码解释说明:

  1. 添加桌面输入
  2. 添加摄像头视频输入
  3. 添加音频输入 麦克风 (HD Pro Webcam C920)
  4. -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表示左上角重合、
  5. -r 强制设置输出帧率为20、-vcodec 设置输出视频编码为 libx264、-preset 设置编码速度为极快(ultrafast)、-acodec 设置音频编码为 aac 、-ac 设置声道为立体声 、-ar 设置音频采样率为44100 、-ab 设置比特率为 128k bit/s 、 -pix_fmt 设置视频编解码格式为 yuv420p、-s 设置输出分辨率为 640x480、
  6. -f flv 设置输出地址为直播推流地址
  7. orce_original_aspect_ratio:保持视频宽高比的方法,可以使用如下值:(1)disable——不保持宽高比;(2)decrease——需要的时候降低宽或者高;(3)increase——需要的时候提高宽或者高。