Использование FFMPEG для трансляции видео с моей веб-камеры на YouTube [закрыто]
Я пытался использовать ffmpeg для трансляции видео с моей веб-камеры на YouTube, и до сих пор все, что мне удалось, - это "подтверждение" с YouTube, говорящее "начало" зеленым цветом. Однако он быстро становится серым, и фактический поток никогда не меняется из офлайнового.
Я использую эту команду, чтобы попытаться передать его в потоковом режиме:
ffmpeg -rtbufsize 1500M -r 25 -f dshow -s 1280x720 -i video="USB2.0 HD UVC WebCam" -vcodec h264 -b:a 600k -acodec libfaac -ab 128k -f flv "rtmp://a.rtmp.youtube.com/live2/user.useruser.codecodecode"
Мне удалось транслировать видео на YouTube с помощью ffmpeg, это просто камера, которая не будет работать. Есть идеи, что я могу делать? неправильно?
Это команда, которую я использую сейчас
ffmpeg -r 18 -f dshow -s 1280x720 -i video="USB2.0 HD UVC WebCam":audio="Microphone (Realtek High Definition Audio)" -vcodec h264 -b:v 1800k -acodec aac -strict experimental -f flv "rtmp://a.rtmp.youtube.com/live2/useruser.useruser.codecodecodecode"
Теперь я использую -acodec aac вместо libfaac или libfdk_aac, так как я получал ошибки "неизвестного кодера"
Он течет несколько секунд, однако, теперь я получаю эти ошибки:
WriteN, RTMP send error 10053
Есть идеи, что они означают, или как их исправить?
3 ответов:
Есть несколько вещей, неправильных с вашей командой:
У вас нет аудиопотока. При использовании
dshowТакже необходимо указатьaudio, как описано здесь.
ffmpeg -f dshow -i video="Integrated Camera":audio="Microphone name here"Если вы не собираетесь записывать звук, поставьте беззвучную звуковую дорожку.
-b:aэто то же самое, что-ab- скорость передачи звука. Вы должны использовать-b:vдля указания битрейта видео.600kслишком низкий для видео 1280х720px @ 25fpsH.264поток.YouTube рекомендует :
720p
Диапазон Битрейта Видео: 1500-4000 Кбит / С
Вы должны поставить хотя бы
1800k.Что касается аудио, которое вы используете
libfaac. Для достижения наилучших результатов при кодированииAACрекомендуется использоватьlibfdk_aac
Прямая трансляция IP-камеры на Youtube с помощью FFmpeg. - Для пользователей Ubuntu (что я сделал)
Установите последнюю версию ffmpeg на ubuntu 12.04 или 14.04 https://gist.github.com/xdamman/e4f713c8cd1a389a5917 и
Компиляция FFmpeg на Ubuntu https://gist.github.com/faleev/3435377
Откройте Youtube. Авторизоваться. Нажмите на мой канал > Менеджер видео > прямая трансляция . Примечание "имя потока/ключ".
Для статического видео файл:
ffmpeg -re -i "(input-file)" -acodec libmp3lame -ar 44100 -b:a 128k -pix_fmt yuv420p -profile:v baseline -s 426x240 -bufsize 2048k -vb 400k -maxrate 800k -deinterlace -vcodec libx264 -preset medium -g 30 -r 30 -f flv "rtmp://a.rtmp.youtube.com/live2/(Stream name/key)"Для потоковой передачи видео с IP-камеры с выходом rtsp video only:
ffmpeg -re -i input-file -rtsp_transport tcp -i "rtsp://password@(streamaddress with local IP)" -acodec libmp3lame -ar 44100 -b:a 128k -pix_fmt yuv420p -profile:v baseline -s 426x240 -bufsize 2048k -vb 400k -maxrate 800k -deinterlace -vcodec libx264 -preset medium -g 30 -r 30 -f flv "rtmp://a.rtmp.youtube.com/live2/(Stream name/key)"
Если у вас есть веб-камера с IP-адресом с источником видео full HD x264, без звука, и вы хотите транслировать свой прямой экран камеры на YouTube, вам не нужно перекодировать/повторно кодировать видео в более низком разрешении всегда. YouTube может принимать прямой видеопоток с некоторой камеры. Единственное, что вы должны сделать, это добавить дополнительную пустую / тихую звуковую дорожку. Если у вас достаточно bandwith в вашей сети, это должно быть работой.
Я использую эту команду CLI на Pine64+ с Ubuntu 16.04 и это работает:
ffmpeg -re -rtsp_transport tcp -i "rtsp://<user>:<pass>@<camera_ip>:<port>" / -f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 / -c:a libmp3lame -ab 128k -ar 44100 / -c:v copy -threads 2 -bufsize 512k / -f flv "rtmp://a.rtmp.youtube.com/live2/<your-live-stream-key>"(вот некоторая информация о виртуальном устройстве ввода Libavfilter: https://www.ffmpeg.org/ffmpeg-devices.html#lavfi )
Таким образом, вы можете перенаправить прямой экран камеры с бесшумным звуком на YouTube с минимальным использованием процессора.
Некоторые ограничения:
- Когда ваша сеть не работает (например, ваш провайдер обновляет сеть, изменяет ваш публичный IP или ваш маршрутизатор перезапущен), ffmpeg потеряет сигнал (webcamera и/или YouTube RTSP).
- как я видел, иногда YouTube прекращает прием потока и преобразует последние данные в видеофайл (архив потокового видео), а после этого создает новый идентификатор для прямого эфира. Это влияет на работу ffmpeg (RTSP соединение потеряно)и влияет на вашу веб-страницу, где вы вставили код YouTube live stream. (Как я обнаружил, YouTube обрабатывает максимум 12 часов видео только в одном месте).
В обоих случаях ffpmeg не смог обнаружить проблему сети или потоков. Так что если вы хотелось бы, чтобы поток нескончаемый поток трудно автоматизировать правильно.
- каким-то образом вам нужно обнаружить ошибки сети.
- каким-то образом вам нужно определить, когда YouTube перестанет слушать RTSP.
- каким-то образом вам нужно определить, потерял ли ffmpeg связь с камерой.
- и, наконец, как-то вам нужно перезапустить ffmpeg, когда все службы снова работают.
Временно я использую небольшое задание cron в данный момент, которое перезапускает ffmpeg в каждый час.
Comments