Потоковая передача VLC libx264, мультиплексированная как FLV
Вопрос
У меня вопрос о потоковом выводе 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.
Надав в Софине