после долгих поисков в Google и после того, как я прочитал множество форумов, я все еще не могу вести прямую трансляцию с помощью моей камеры на другое устройство. Моя система состоит из сервера (ноутбук с Windows), который захватывает сцену и транслирует полученное видео. возможность читать поток видео с помощью простой страницы html5, оснащенной dash.js.
В самом начале, чтобы понять, как работает тире, я попытался стримить какое-то «статическое» видео, и благодаря этому туториалу все отлично работает . Проблемы возникают, когда я пытался транслировать живое видео и следовал этому руководству , потому что ffmpeg не удалось создать файл .mpd, но его можно разделить на две подзадачи:
Когда я пытаюсь обработать аудио и видео вместе, система говорит, что аудиоканал не содержит никакого потока. Ниже я перечисляю вставленную команду:
ffmpeg -f dshow -i video="USB2.0 VGA UVC WebCam":audio="Microfono /
(Realtek High Definition Audio)" -map 0:0 -pix_fmt yuv420p /
-c:v libvpx -b:v 3000k -keyint_min 30 -g 30 -speed 6 /
-tile-columns 4 -frame-parallel 1 -threads 8 -static-thresh 0 /
-max-intra-rate 300 -deadline realtime -lag-in-frames 0 /
-error-resilient 1 -f webm_chunk -header live.hdr /
-chunk_start_index 1 live_%d.chk -map 0:1 -c:a libvorbis -b:a 128k /
-ar 44100 -f webm_chunk -audio_chunk_duration 2000 -header /
live_audio.hdr -chunk_start_index 1 live_audio_%d.chk
Приведенные выше строки вызывают аудио- и видеооборудование и сохраняют мультимедийные потоки фрагментами.
ffmpeg -f webm_dash_manifest -live 1 -i live.hdr -f webm_dash_manifest /
-live 1 live_audio.hdr -c copy -map 0 -map 1 -f webm_dash_manifest /
-live 1 -adaptation_sets "id=0,streams=0 id=1,streams=1" /
-chunk_start_index 1 -chunk_duration_ms 2000 /
-time_shift_buffer_depth 7200 -minimum_update_period 7200 manifest.mpd
Этой последней команде не удалось подключить аудиопоток в файле .mpd, и в консоли появилось сообщение об ошибке «Выходной файл № 0 не содержит никакого потока».
Поэтому я пытаюсь только с видео, используя по существу те же параметры, но при попытке создать манифест возникает ошибка типа «Не удалось записать заголовок для выходного файла № 0 (неверные параметры кодека?): Неверные данные обнаружены при обработке ввода» , поэтому мне любопытно узнать, какие параметры неверны.
В этот момент я полностью меняю свою стратегию, поэтому я создаю фрагментированную версию прямой трансляции и пытаюсь использовать MP4Box для создания файла .mpd, но кажется, что MP4Box работает только с видео с ограниченным временем, или, по крайней мере, я не могу использовать в живую.
И, наконец, я использовал Dashcast, и я смог увидеть какой-то кадр со своей клиентской страницы, но он просто не работает. Последняя команда, которую я вставил, выглядит следующим образом:
DashCast -vf dshow -vfr 15 -v video="USB2.0 VGA UVC WebCam" /
-live -seg-dur 500 -frag-dur 100 -time-shift 10
На самом деле я немного поигрался с параметрами и т.д... но результат все тот же, просто я не вижу своего лица в браузере. В этом случае ошибка "буфер реального времени заполнен на 101%! кадр пропущен!" или «буфер реального времени заполнен на 80%! кадр пропущен!».
Итак, мой вопрос: что не так с моими командами FFmpeg?
Как я могу использовать MP4Box для живых целей (с примерами, потому что я не нашел ни одного примера во всей сети)?
И, наконец, почему DashCast такой медленный?
Очевидно, что любые предложения об альтернативных методах проведения прямой трансляции с помощью какого-либо другого инструмента принимаются.
Я нахожусь в том же положении, что и вы, и я подозреваю, что часть проблемы заключается в том, что мой процессор не может достаточно быстро перекодировать поток, особенно при запуске проигрывателя на той же машине.
Проверьте загрузку ЦП, если она достигает максимума, это, вероятно, причина падения кадров.
По-видимому, mp4box можно использовать для прямой трансляции DASH (у него есть опция -dash-live), но мне пока не удалось заставить это работать. Эта ссылка довольно старая, но, похоже, есть рабочий пример:
http://www.slideshare.net/cconcolato/live-streaming-of-video-and-subtitles-with-mpegdash
Ганс Мейзер
Ганс Мейзер
Ганс Мейзер
пользователь66350
астроходец