2015-04-20 3 views
0

У меня проблема с ffmpeg, и я не знаю, как продолжить. У меня есть 2 компьютера:Вопросы ffmpeg

Клиент:

  • Run Ubuntu 14,04
  • FFmpeg установлен
  • Использование языка С ++
  • Особенности: использование FFmpeg для кодирования H264 видеоданных с веб-камеры клиентского ноутбука , то передача в реальном времени на сервер

Сервер:

  • Запуск Windows 7
  • FFmpeg установлен
  • Использование языка С ++ (MFC)
  • Особенности: Получить данные в реальном времени от клиента и показать его на экране.

Я только что подключил клиента к серверу, и они могут передавать текстовые данные вместе, и у меня нет никакой идеи сделать видео в режиме реального времени.

И мои вопросы:

  1. [Клиент] Как получить видео с веб-камеры на ноутбуке (используя код FFmpeg), сохранить его в буфер (исходные данные), кодировать и передавать на сервер?

    Я использую ffmpeg, чтобы получить видеоролик из wc, но сохранить его в файл. Я действительно не хочу этого. Кодекс:

    ffmpeg -f v4l2 -framerate 25 -video_size 640x480 -i /dev/video0 output.mkv 
    
  2. [Клиент] Как получить исходные данные от клиента, декодировать и воспроизводить его?

    У меня есть идея поиграть с помощью directshow в MFC.

+1

Что вы пытаетесь обновить в реальном времени? Что вы пытались обновить в реальном времени? – DrCord

+0

Я пытаюсь получить видео от клиента и показать его на сервере. – QuestionGuy

+1

Вам нужно будет опубликовать то, что вы попытались получить, чтобы получить помощь по переполнению стека, вопросы, которые по сути «рассказывают мне, как это сделать», не показывая, что вы пытались получить решения, не получили должного внимания на SO. – DrCord

ответ

0

Если вы должны вы могли бы реализовать свой собственный плеер в C++, используя FFmpeg библиотеки или libav библиотеки. Это позволяет поддерживать широкий диапазон кодеков и форматов.

В Windows вы можете использовать C++ Windows Media Player Control, но он поддерживает только несколько форматов и не H.264.

У вас есть следующие опции на сервере происхождения (ваш ящик Linux):

  • vlc перекодировать

DivX3 с MP3 в ASF, кажется, принято WMP:

cvlc input.mp4 --sout="#transcode{vcodec=DIV3,scale=Auto,acodec=mp3,ab=128,channels=2,samplerate=44100}:http{mux=asf,dst=:8080/}" --sout-keep 

На клиенте вы можете получить поток, используя http://server_address:8080.

  • ffmpeg с ffserver

Читать ffserver Documentation и Streaming media with ffserver для того, чтобы установить его.

Для WMP вы будете использовать еще раз ASF:

# ASF compatible 

<Stream test.asf> 
Feed feed1.ffm 
Format asf 
VideoFrameRate 15 
VideoSize 352x240 
VideoBitRate 256 
VideoBufferSize 40 
VideoGopSize 30 
AudioBitRate 64 
StartSendOnKey 
</Stream> 

Source.

Вы можете получить поток, используя http://ffserver_address:port/stream_name.asf.

+0

Зачем упоминать вилку Libav? Если вы предлагаете использовать библиотеки, то, возможно, вы имеете в виду библиотеки FFmpeg libav *? – LordNeckbeard

+0

Я знаю вражду. Я также знаю, что они приложили много усилий для очистки базы кода и, как правило, более сосредоточены, поэтому я интуитивно рекомендовал ее тем, кто, кажется, только начинает в этом направлении. Но вы правы, я уточню ответ, чтобы упомянуть об этом, так как это справедливо. – aergistal

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