可以将两个音频源与x11grab合并吗?


11

目前,我正在使用以下设置运行。

ffmpeg \
 -i http://pub1.di.fm:80/di_vocaltrance \
 -f x11grab -s 1920x1080 -r 25 -i :0.0 \
 -c:v libx264 -preset fast -pix_fmt yuv420p -s 1280x800 \
 -c:a libmp3lame -ab 96k -ar 22050 \
 -threads 0 \
 -f flv "rtmp://...."

我想烤的东西:

 -f alsa -ac 2 -i hw:0 -acodec pcm_s32le -aq 1 -ab 128k\

这可能吗?甚至可以混入“我听到的内容”(又名回放)吗?

我已经尝试了一些方法(但没有完全理解-map)

 -i http://pub1.di.fm:80/di_vocaltrance -map 0:1 \
 -f x11grab -s 1920x1080 -r 25 -i :0.0 -map 0:0 \

但这并不是真的很好。

我现在已经很近了,这给了我声音通道,但是一切听起来像我都在一个小罐子里。

#!/bin/bash
KEY=`cat key.db`

ffmpeg \
 -i http://pub1.di.fm:80/di_vocaltrance \
 -f alsa -ac 2 -i hw:0 -acodec mp3 -aq 1 -ab 128k \
 -f x11grab -s 1920x1080 -r 25 -i :0.0 \
 -c:v libx264 -preset fast -pix_fmt yuv420p -s 1280x800 \
 -c:a mp3 -ab 96k -ar 22050 \
 -threads 0 \
 -map 0:0 -map 1:0 -map 2:0 \
 -f flv "rtmp://live.twitch.tv/app/$KEY"

仅当我将两种声音混合在一起时才会出现。也试图在这里获取JACK,但没有任何实际结果(我想我会通过混合器板传递所有内容以从混合器中卸载ffmpeg)。

运行:

 -f alsa -ac 2 -i jack \
 ....

给这个但是:

[alsa @ 0x1399280]无法设置样本格式0x10000 2(无效参数)

插孔:输入/输出错误


只是一个建议,但是Sox是为这种事情设计的简单实现的cli实用程序。虽然冻结似乎确实有一个相当坚定的处理。
mikeserv

Answers:


2

您应该可以使用混音过滤器将音频混合在一起。

例:

ffmpeg \
  -i http://pub1.di.fm:80/di_vocaltrance \ # internet radio
  -f alsa    -i hw:0 \                     # microphone
  -f x11grab -i :0.0 \                     # computer desktop
  -f v4l2    -i /dev/video0 \              # webcam or
  # -f iec61883 -i auto \                  # firewire camcorder
  -filter_complex '[0:a:0][1:a:0]amix=inputs=2;[3:v:0]scale=200:-1[webcam],[2:v:0][webcam]overlay=main_w-overlay_w-10:main_h-overlay_h-10' \
  <output>

我还添加了一个网络摄像头叠加层,以删除它,删除网络摄像头行,分号和分号后的定义。

请注意,-map如果添加具有多个流的任何输入以删除无关的输入,则可能必须定义。

说明:

-filter_complex
定义具有多个输入或输出的过滤器
[0:a:0]
输入0的音频流编号0。(互联网广播)
[1:a:0]
输入1的音频流编号0。(麦克风)
amix=inputs=2
将两个音频流混合在一起,如果未定义输入流,它将自动选择两个,因此在这种情况下,您应该可以省略上述两个定义。
;
开始一个新的过滤链
[3:v:0]
输入3的视频流编号0。(网络摄像头)
scale=200:-1
将视频缩放到200x ???,-1保持宽高比,因此600x480的视频变为200x160。
[webcam]
将缩放后的输出称为“网络摄像头”。
,
继续执行此链中的下一个过滤器。
[2:v:0]
输入2的视频流编号0。(桌面)
[webcam]
缩放的网络摄像头流。
overlay=main_w-overlay_w-10:main_h-overlay_h-10
将第二个输入覆盖在第一个输入上方,将第二个输入从右放置10个像素,从底部放置10个像素。

另外,您可以将声卡捕获源设置为混合以获取计算机的输出,并且通常可以取消麦克风的静音以使麦克风监视器环回,但是要使其正常工作,您必须使用插孔或脉冲。我不知道为什么杰克没有为您工作,所以抱歉,我无能为力。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.