Потоковая передача VLC libx264, мультиплексированная как FLV

StackOverflow https://stackoverflow.com/questions/9333377

  •  27-10-2019
  •  | 
  •  

Вопрос

У меня вопрос о потоковом выводе libx264.Мой сценарий состоит в том, что я захватываю видео с веб-камеры, кодирую с помощью x264, а затем передаю данные на флэш-память, мультиплексированную как FLV.Для мультиплексирования я использую output / flv_bitstream.h, включенный в budle libx264.Единственная модификация мультиплексора, которую я сделал, заключается в том, что вместо fwrite () im usig send () для передачи данных через сокет ... Библиотека кодирования работает нормально.Если я сохраню вывод (даже мультиплексированный), vlc player сможет его воспроизвести.Но когда дело доходит до передачи данных через сокет, vlc и flash не взаимодействуют.Странная мысль заключается в том, что если я отправляю данные на vlc-плеер через сокет, он ждет до конца передачи, а затем воспроизводит видео из буфера.Но мне нужно смотреть прямую трансляцию.

Я также попытался прочитать файл flv и отправить его в vlc тега flash по тегу, и он работает нормально.

Есть предложения?

Это было полезно?

Решение

Реализуйте простой HTTP-сервер и отвечайте на входящие запросы с помощью:
"HTTP / 1.0 200 ОК \ r \ n"
"Pragma: no-cache \ r \ n"
"Content-Type: video / x-flv \ r \ n"
"\ r \ n"
За каждым из них должен следовать необработанный битовый поток FLV.
Это должно позволить живое потребление контента с использованием, например,.VLC, flowplayer, ...

Кроме того, рассмотрите возможность использования url_open_dyn_buf / url_close_dyn_buf вместо fwrite, для справки см. Ffserver.

Надав в Софине

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top