Я смотрю поток на 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