Я хочу создать поток FLV, сгенерированный из изображений, взятых из моего приложения DirectX, чтобы в конечном итоге попасть на веб-страницу.
Мой текущий план - (были) отправлять скриншоты в формате JPG: s из приложения dx клиенту, работающему в Linux. Этот клиент преобразует JPG: s в поток MJPEG. И ffmpeg преобразует поток MJPEG в FLV - в браузере Flash Player попадает в него.
Что-то вроде;
- Запустите приложение dx на машине с Windows, оно прослушивает соединение, чтобы отправить скриншот JPG: s на
- на машине linux; ./jpg_to_mjpeg_client | ffmpeg -f mjpeg -i - output.flv
Я думал, что план хорош, но сейчас я застрял. ffmpeg, похоже, неправильно обрабатывает поток MJPEG, исходящий от клиента. Я использовал некоторый код, найденный в сети, для создания потока MJPEG из JPG: s, и я понимаю, что нет реальной спецификации для формата MJPEG, поэтому, возможно, они не используют тот же формат MJPEG или что-то в этом роде.
Прямо сейчас я отправляю [размер буфера JPG], [буфер JPG] для каждого кадра из приложения dx. Полагаю, я мог бы как-то там тоже закодировать некоторый поток, но, с другой стороны, я не хочу тратить слишком много ЦП на компьютер для рендеринга.
Как бы вы это сделали? Любые советы высоко ценятся! Библиотеки / API, которые нужно использовать, другие решения ... У меня совсем нет опыта кодирования видео, но я хорошо знаю свои способы "общего программирования".
C или C ++ предпочтительнее, но Java или Python тоже могут быть в порядке. Я хочу это довольно быстро, хотя -
он должен быть создан в реальном времени, один кадр из приложения dx должен появиться в браузере как можно скорее: -)
О, и в будущем план должен быть интерактивным, чтобы я мог общаться с DX-приложением и управлять им из веб-приложения в браузере. Может быть, будет полезно добавить и эту информацию. Вроде как веб-видеомагнитофон, и фильм воспроизводится в режиме реального времени из приложения DX.
Спасибо