2010-06-28 2 views
7

Я буду чрезвычайно благодарен, если вы сможете помочь мне с проблемой потоковой передачи H264, которую я пытался решить в течение нескольких недель.Потоковое видео H.264 через RTP от Live555 до VLC

Мне нужно передать H264 видео с Live555 (на машине с Linux) в VLC Media Player (на компьютере с Windows). С RTSP он работает очень хорошо, но мне нужно использовать RTP без RTSP, а с RTP я не вижу видео. VLC даже не признает, что поток H264.

Это файл SDP передается через RTSP (конфигурации, которая работает):

v=0 
o=- 1277647151953158 1 IN IP4 190.40.14.100 
s=Session streamed by "testH264VideoAudioStreamer" 
i=test-h264-mux.mpg 
t=0 0 
a=tool:LIVE555 Streaming Media v2007.05.24 
a=type:broadcast 
a=control:* 
a=source-filter: incl IN IP4 * 190.40.14.100 
a=rtcp-unicast: reflection 
a=range:npt=0- 
a=x-qt-text-nam:Session streamed by "testH264VideoAudioStreamer" 
a=x-qt-test-inf:test-h264=mux.mpg 
m=video 8554 RTP/AVP 96 
c=IN IP4 190.40.15.63/7 
a=rtpmap:96 H264/90000 
a=fmtp:96 packetization-mode=1;profile-level-id=000042;sprop-parameter-sets=H264 
a=control:track1 

Но если перейти от RTSP до РТП, он не работает. Я пробовал загрузить вышеупомянутый SDP-файл в VLC-плеер, но это не помогает.

Вот некоторые из вывода отладочной 0.8.6d VLC Player:

main input debug: thread 4016 (input) created at priority 1 (input/input.c:265) 
main input debug: `rtp://@190.40.15.63:8554' gives access `rtp demux' `' path `@190.40.15.63:8554' 
main input debug: creating demux: access='rtp' demux='' path='@190.40.15.63:8554' 
main demuxer debug: looking for access_demux module: 0 candidates 
main demuxer warning: no access_demux module matched "rtp" 
main input debug: creating access 'rtp' path='@190.40.15.63:8554' 
main access debug: looking for access2 module: 6 candidates 
access_udp access debug: opening server=:0 local=190.40.15.63:8554 
main access debug: net: connecting to '[]:[email protected][190.40.15.63]:8554 
main access debug: looking for netrowk module: 1 candidate 
ipv6 access debug: 190.40.15.63: Host or service not found 
main access debug: using network module "ipv6" 
main access debug: removing network module "ipv6" 
main access debug: looking for netrowk module: 1 candidate 
ipv4 access debug: resolving 190.40.15.63:8554... 
ipv4 access debug: resolving :0... 
main access debug: using network module "ipv4" 
main access debug: removing network module "ipv4" 
main access debug: using access2 module "access_udp" 
main private debug: pre buffering 
access_udp access debug: no RTP header detected 
main input debug: creating demux: access='rtp' demux='' path='@190.40.15.63:8554' 
main demuxer debug: looking for demux2 module: 45 candidates 
ts demuxer warning: TS module discarded (lost sync) 
ffmpeg demuxer debug: detected format: mp3 

(Там могут быть опечатки, потому что я должен был скопировать его вручную - не спрашивайте :))

В VLC 1.0.5 Я получаю неизвестный тип полезной нагрузки, и SDP не может быть загружен вообще из-за ошибки Неизвестная ошибка сетевого стека. Другие отображаемые ошибки: Информация о соединении SDP не поддерживается и Предупреждение о демпфере Sap: недействительный SDP.

Любая помощь будет принята с благодарностью!

Спасибо,

Илья

+1

Один быстрый комментарий: ваш файл SDP технически недействителен. Вы должны быть base-64, кодируя информацию SPS и PPS, ограничивая ее запятой и добавляя ее к вашим наборам параметров sprop. Вы устанавливаете его на строку «H264», которая, безусловно, неверна (хотя, к сожалению, очень распространена). – kidjan

ответ

8

То, что я должен был сделать, это использовать SDP файл вместо того, чтобы открыть поток непосредственно. Оказывается, данные SDP передаются только при использовании RTSP. При потоковой передаче RTP я сам должен был предоставить SDP-файл.

Так что я сделал:

  1. потока с RTSP (метод, который работает),
  2. Использование Wireshark для записи файла SDP, передаваемые по протоколу RTSP,
  3. Сохранить СДП в виде текстового файла с расширением .sdp,
  4. В VLC откройте файл SDP вместо прямого открытия сетевого потока.

И это было волшебство!

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