如何捕获屏幕和音频输入并推送到rtmp服务器?

时间:2016-03-06 12:33:18

标签: rtmp avconv

我在ubuntu上使用avconv,我找到了这个命令

avconv -f alsa -i pulse -f x11grab -r 25 -s 1280x720 -i :0.0+0,0 -acodec libfaac -vcodec libx264 -pre:0 lossless_ultrafast -threads 0 video.mkv

保存为文件,此命令

avconv -i ./test.m4v -re -c copy -f flv "rtmp://localhost/livestream"

推送直播。

我如何将它们组合在一起?

1 个答案:

答案 0 :(得分:0)

首先,你应该在video.stackexchange.com上提出这样的问题,而不是在这里。

其次,让我们拆开你找到的两个命令:

  • -f alsa - 输入格式为alsa
  • -i pulse - 您正在阅读pulse(pulseaudio驱动程序)
  • -f x11grab - 计划从x11的屏幕上阅读
  • -r 25 -s 1280x720 - 传入视频流的速率和大小
  • -i :0.0+0,0 - 这会选择传入视频的来源
  • -acodec libfaac - 此处输出选项开始,您将音频代码设置为libfaac,或者至少尝试...因为此选项很久以前已被弃用,目前-c:a将被用于
  • -vcodec libx264 - 设置视频代码,但您应该使用-c:v
  • -pre:0 lossless_ultrafast -threads 0 - 有关如何进行编码的某种参数
  • video.mkv - 这是输出文件

第二个

  • -i ./test.m4v - 您正在阅读的文件
  • -re - "以原生帧速率读取输入"
  • -c copy - 不要重新编码,只需按原样管道
  • -f flv - 容器格式
  • "rtmp://localhost/livestream" - 你计划在那里写下所有内容。

当你理解这一点时,你应该清楚的是,你打算做的是使用第一个命令的输入和编码部分,以及第二个命令的格式和输出。

我没有时间检查你找到的所有东西是否有效,你应该自己做。