2010-01-20 2 views
1

Я хочу создать поток FLV, созданный из изображений, полученных из моего приложения directx, чтобы попасть на веб-страницу.Лучший способ создания потока FLV со скриншотов

Мой текущий план был (был) для отправки скриншотов как JPG: s из приложения dx, для клиента, работающего в Linux. Этот клиент преобразует JPG: s в поток MJPEG. И ffmpeg преобразует поток MJPEG в FLV - заканчивается в Flash Player в браузере.

Нечто подобное;

  1. запустить приложение йх на окна машины, он ожидает соединения для отправки скриншота JPG: с до
  2. на Linux машине; ./jpg_to_mjpeg_client | ffmpeg -f mjpeg -i - output.flv

Я думал, что план был хороший, но я застрял сейчас. ffmpeg, похоже, не обрабатывает поток MJPEG, поступающий от клиента правильно. Я использовал код, который я нашел в сети для создания потока MJPEG из JPG: s, и я понимаю, что нет никакой реальной спецификации для формата MJPEG, поэтому, возможно, они не используют один и тот же формат MJPEG или что-то в этом роде.

Прямо сейчас я посылаю [размер буфера JPG], [буфер JPG] для каждого кадра из приложения dx. Я думаю, я мог бы каким-то образом закодировать поток, но, с другой стороны, я не хочу тратить слишком много процессора на машину рендеринга.

Как вы это сделаете? Любые советы приветствуются! Библиотеки/API: s для использования, другие решения. У меня нет большого опыта кодирования видео вообще, но я хорошо знаю способы «общего программирования».

C или C++ предпочтительнее, но Java или Python могут быть в порядке. Я хочу, чтобы это было довольно быстро, но - он должен быть создан в реальном времени, один кадр из приложения dx должен как можно скорее оказаться в браузере :-)

О, и в будущем план он должен быть интерактивным, чтобы я мог общаться с/управлять DX-приложением из webapp в браузере. Могла бы также добавить эту информацию. Похоже на видеомагнитофон с веб-технологией, и фильм отображается в реальном времени из приложения DX.

Thanks,

+0

Для записи мне удалось сделать еще один шаг на этом, сделав приложение DX отправлением JPG: s как MJPEG через HTTP. ffmpeg принял это и смог выплюнуть из него видео MPG. Итак, теперь нужно потоковое воспроизведение FLV, для чего я собираюсь попробовать ffserver. – boffman

ответ

0

Использовать gstreamer для Linux. Вы можете комбинировать практически любую комбинацию входов и выходов, используя любые кодеки, которые вам нравятся. Это немного хлопот, чтобы учиться.

Смежные вопросы