Я смотрю поток на Youtube с VLC и сделал следующую командную строку:
cvlc -vv screen:// --live-caching=0 --screen-fps=30 --screen-width=1920 --screen-height=1080 --sout='#transcode{vcodec=h264,scale=Auto,width=1920,height=1080,acodec=mp3,ab=128,channels=2,samplerate=44100}:std{access=rtmp,mux=ffmpeg{mux=flv},dst=rtmp://a.rtmp.youtube.com/live2/xxxxxxxxxxx}'
Если я заменю screen:// ..
видеофайл, поток успешно загружается на Youtube.
Но я понятия не имею, почему это не бросит экран. Youtube кратко показывает связь, но нет изображения. Поток не прерывается VLC, и он показывает, что загрузка продолжается, но YT никогда не принимает ее. Любая помощь будет оценена.
Для записи, я могу просматривать экран в автономном режиме в VLC без потоковой передачи.
Я получаю конкретную ошибку, которая выделяется:
core mux warning: late buffer for mux input (repeated while streaming)
но это происходит и в случае загрузки видео, а затем, похоже, не вызывает проблем.
Журнал
Ниже приведен журнал, когда я пытаюсь настроить HTTP-сервер для потоковой передачи рабочего стола, одновременно играя в VLC. Я получаю изображение, но только статичное, первый кадр потока.
Это говорит мне о том, что у меня медленный компьютер, но это Corei5, а процесс VLC занимает всего 9%, а оставшееся много. Сохранение в файл работает нормально.
Заметка
У меня есть два монитора. Это может быть проблемой, я не знаю.
Обновить
Я исправил проблему с пропущенными кадрами, увеличив буфер с live-caching=2500
. Теперь он отлично работает с локальным HTTP-сервером, но не с YT.
#transcode{vcodec=h264,scale=Auto,width=1920,height=1080
поскольку я получаю, что вы транскодируете поток в реальном времени с огромным разрешением, попробуйте вывести поток меньшего размера 640-480Ответы:
Проблема инициализации
Перед потоковой передачей на YouTube предъявляется странное требование: вам нужно посетить страницу потоковой передачи один раз, чтобы инициализировать свой профиль потоковой передачи, после того как вы были одобрены в процессе регистрации.
Снимок экрана: Создать поток
Снимок экрана: экран "Начало работы"
Проблема с ключом потока (именем потока)
Я также заметил, что вы не передали ключ потока в VLC. Без ключа потока (имя потока) YouTube отклонит любое соединение. VLC поддерживает эту функцию в аргументах для протокола RTP, поэтому он может поддерживать ее для протокола RTMP, но я не задерживаю дыхание. Я заметил, что RTMP не указан в качестве доступного потокового протокола в GUI для VLC, поэтому я очень сомневаюсь, что VLC может даже передавать протокол RTMP. Adobe предприняла попытки наказать любого, кто использует проект с открытым исходным кодом RTMPdump, утверждая, что это нарушение DMCA. https://en.wikipedia.org/wiki/Real-Time_Messaging_Protocol#rtmpdump Поскольку для RTMP требуется надежное шифрование для потоковой передачи, VLC может не поддерживать потоковую передачу на YouTube.
Возможно, вам удастся выполнить потоковую передачу из VLC в это другое приложение, а затем передать это приложение через программу RTMPdump CLI на YouTube. http://docs.livestreamer.io/install.html#windows-binaries
Снимок экрана: найдите ключ потока здесь
Проблема с репутацией VLC
Я пытался заставить VLC записывать экраны рабочего стола в файл много раз в прошлом и настоящем, и он всегда с треском проваливался, либо отказываясь соблюдать выбранную частоту кадров, либо кодируя файл с неверными тегами кодека, что приводило к файл, воспроизводящий только звук в медиаплеере, или любое другое количество проблем. VLC не так крепок, поскольку его репутация заставляет людей верить. Я бы полностью пропустил VLC и пошел бы с выделенной потоковой программой, такой как Open Broadcaster Software Studio (OBS Studio). OBS Studio - это обновленная версия OBS: https://obsproject.com/
источник
Вы можете попробовать с этим программным обеспечением
https://en.wikipedia.org/wiki/Open_Broadcaster_Software
Он прост в использовании и работает. Я использую, чтобы попробовать strteaming с vlc, но после многих проблем я устанавливаю сервер Ubuntu, помещаю OBS и транслирую заседания парламента на YouTube.
источник