Используя FFMPEG к потоку к Twitch.tv с настольным аудио?

Если Вы не можете, это означать, что конфигурация демона SSH (на сервере) запрещает его. Это может быть сделано несколькими различными настройками в /etc/ssh/sshd_config: AllowUsers, AllowGroups, DenyGroups и DenyUsers. Взгляните на man sshd_config.

Порядок интерпретации тех директив также описан в странице справочника:

По умолчанию вход в систему позволяется для всех групп. Позволить/отклонить директивы обрабатываются в следующем порядке: DenyUsers, AllowUsers, DenyGroups и наконец AllowGroups.

5
17.08.2013, 04:54
2 ответа

Попытка № 2

(Метод ALSA работал, но аудио тихо!)

Найденный этими 2 методами в названном сообщении в блоге: Широковещательная передача к twitch.tv, использующему ffmpeg.

Сначала установите эти переменные как так:

SIZE=”1600×1200″
BITRATE=”128k”
FRAMERATE=”20″
KEY=”your key here”

Затем используйте это для ALSA:

$ ffmpeg \
       -f x11grab -s $SIZE -r $FRAMERATE -i :0.0 \
       -f alsa -ac 2 -i hw:0,0 -vb $BITRATE -vcodec libx264 \
       -threads 0 -acodec libmp3lame -ab 128k -ar 22050 \
       -f flv “rtmp://live.justin.tv/app/$KEY”

Или при использовании OSS:

$ ffmpeg \
       -f x11grab -s $SIZE -r $FRAMERATE -i :0.0 \
       -f oss -i /dev/dsp -vb $BITRATE -vcodec libx264 \
       -threads 0 -acodec libmp3lame -ab 128k -ar 22050 \
       -f flv “rtmp://live.justin.tv/app/$KEY”

Я также нашел дополнительную информацию о том, как настроить это на следующих страницах:

Попытка № 1 - (не работал),

Получил эту ошибку: Неизвестный формат ввода: 'импульс'

Я нашел это на на ffmpeg Wiki. Это было на странице, названной, Передавая Руководство потоком.

$ ffmpeg \
       -f x11grab -s $INRES -r $FPS -i :0.0 \
       -f pulse -ac 2 -i default -c:v libx264 -preset $QUAL \
       -pix_fmt yuv420p -s $OUTRES -c:a libmp3lame -ab 96k -ar 22050 \
       -threads 0 -f flv "rtmp://live.justin.tv/app/$STREAM_KEY"
1
27.01.2020, 20:42
  • 1
    @sim Unrecognized option 'af' –  jackcook 17.08.2013, 21:05
  • 2
    @javadog36 - Была опечатка с предыдущим комментарием: Я думаю, что можно использовать аудиофильтр, чтобы сделать это: -af volume=2.0 должен удвоить его. Если фильтр не работает, пробуют переключатель -vol 384. –  slm♦ 17.08.2013, 21:13
  • 3
    @sim - AF все еще не является свойством, и -vol 384 полностью удаляет звук из видео –  jackcook 17.08.2013, 21:56
  • 4
    @sim, я просто нашел это. Я предполагаю, что у меня есть более старая версия ffmpeg. Я попробовал вторую опцию, и она говорит volume=2.0: No such file or directory. –  jackcook 17.08.2013, 22:01
  • 5
    @javadog36 - это - та же страница, что я получил информацию от 8-). Я предполагаю, что это - более старая проблема версии также. Позвольте мне думать об этом немного больше. Сообщите мне, добиваетесь ли Вы каких-либо прогрессов. Также можно ли удалить некоторые комментарии выше этого, не релевантны?Спасибо. –  slm♦ 17.08.2013, 22:04

Вам сначала нужно правильно настроить ALSA, загрузка модуля SND_ALOOP и используя его именованное устройство в плагине MDEV. Вы будете одновременно выводить аудио приложения через устройство с циркой и другое устройство по вашему выбору.

# ~/.asoundrc

pcm.!default {
  type plug
  slave.pcm mdev
  route_policy duplicate
}

pcm.mdev {
  type multi

  slaves.a.pcm "hw:Loopback,0,0"
  slaves.a.channels 2
  slaves.b.pcm "hw:0,0"
  slaves.b.channels 2

  bindings.0.slave a
  bindings.0.channel 0
  bindings.1.slave a
  bindings.1.channel 1
  bindings.2.slave b
  bindings.2.channel 0
  bindings.3.slave b
  bindings.3.channel 1
}

pcm.loopback {
  type hw
  card Loopback
  device 1
  subdevice 0
}

pcm.mic {
  type hw
  card 1
  device 0 
} 

FFMPEG может объединить несколько аудиопотоков с использованием фильтра Amerge. Вы предоставите это с исходным исходным контуром, и вы можете предоставить дополнительные входы. Этот пример включает в себя микрофон. Этот скрипт установлен для потоковой передачи в TwitchTV.

#!/bin/bash

FPS="30"
QUAL="faster"
GOP="60"
GOPMIN="30"
CBR="1500k"
ABR="96k"
SIZE="960x540"
OUTPUT=""rtmp://live-jfk.twitch.tv/app/${STREAM_KEY}"

function GetWindowPos() {
  echo $(xwininfo | grep 'Absolute' | awk '{ORS=" "; print $4;}' | awk '{print ":0.0+"$1","$2"+draw_mouse=0";}')
}

function GetWindowSize() {
  echo $(xwininfo | grep 'Width\|Height' | awk '{ORS=" "; print $2;}' | awk '{print $1"x"$2;}')
}

ffmpeg \
  -f alsa -i mic \
  -f alsa -i loopback \
  -f x11grab -s $(GetWindowSize) -i $(GetWindowPos) \
  -acodec aac -ab "$ABR" -strict -2 \
  -vcodec libx264 -preset "$QUAL" \
  -g "$GOP" -keyint_min "$GOPMIN" \
  -b:v "$CBR" -minrate "$CBR" -maxrate "$CBR" -bufsize "$CBR" \
  -filter_complex "[2:0]format=pix_fmts=yuv420p[vstream];[0:0][1:0]amerge=inputs=2[astream]" \
  -flags:v +global_header -flags:a +global_header \
  -r "$FPS" -s "$SIZE" \
  -map "[vstream]" -map "[astream]" \
  -f flv "$OUTPUT"

Это будет более порядок проще в использовании Pulseaudio, но я часто испытываю задержку с использованием источников монитора, что ужасно для прямой трансляции. Если вы свободны задержкой на Pulsaudio, вы можете просто выключить устройства ALSA для двух импульсных входов.

-f alsa -i mic \
-f alsa -i loopback \

Это изменится на:

-f alsa -i pulse \
-f alsa -i pulse \

, то вы установили бы входы в Pavucontrol.

1
27.01.2020, 20:42

Теги

Похожие вопросы