Я хочу транслировать поток видео в реальном времени, поступающий из udp, в тег HTML video
.Я провел некоторое исследование, но получил много информации и изо всех сил пытаюсь получить четкое представление о том, что я могу сделать, а что нет.
Поток видео использует кодеки H.264 и AAC, контейнер MP4и имеет разрешение 3840x2160 (4K).Я хотел бы воспроизвести его на Chrome (последняя версия).
Как я понимаю, тег HTML video
может изначально читать видео H.264 / AAC.Я заставил его работать с видео-директивой на моем сервере (я использую Meteor JS + React).
Я научился использовать FFmpeg для потоковой передачи потока udp, читаемого проигрывателем VLC, а затем я использовал FFserver (язнаю, что это устарело) для создания потока HTTP, также читаемого VLC, но не тегом HTML video
.
Итак ... мой вопрос: может ли HTML video
изначально считывать видеопоток из HTTP?
Я видел много дискуссий о HLS и DASH, но я не понимал, являются ли (и почему) они обязательными.
Я читал пост о ком-то, кто создает HLSm3u8
с использованием только FFmpeg, это жизнеспособное решение?
Конфигурация FFserver
HTTPPort 8090
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 20
MaxClients 10
MaxBandwidth 100000
<Feed feed.ffm>
File /tmp/feed.ffm
FileMaxSize 1g
ACL allow 127.0.0.1
</Feed>
<Stream stream.mpeg>
Feed feed.ffm
Format mpeg
AudioCodec aac
AudioBitRate 256
AudioChannels 1
VideoCodec libx264
VideoBitRate 10000 // Total random here
VideoBitRateRange 5000-15000 // And here...
VideoFrameRate 30
VideoQMin 1
VideoQMax 50
VideoSize 3840x2160
VideoBufferSize 20000 // Not sure either
AVOptionVideo flags +global_header
</Stream>
Мне пришлось указать QMin и QMax, чтобы избежать сообщения об ошибке, но я не понимаюНе очень понимаю, что это такое.
Командная строка FFmpeg
ffmpeg -re -i bbb_sunflower_2160p_30fps_normal.mp4 -strict -2 -r 30 -vcodec libx264 http://localhost:8090/feed.ffm
Эта работа с VLC.Я работаю с файлом на моем компьютере, прежде чем перейти к потоку udp.