2010-06-28 25 views
7

Haftalarca çözmeyi denediğim H264 akışı sorununda bana yardımcı olabilirseniz çok minnettar olacağım.Live555'ten RTP'ye H.264 videosunu VLC'ye aktarın

Live555'ten (Linux makinesinde) VLC Media Player'a (Windows makinesinde) H264 videosu yayınlamam gerekir. RTSP ile çok iyi çalışıyor, ancak RTP kullanmadan RTP kullanmam gerekiyor ve RTP ile video göremiyorum. VLC, akımın H264 olduğunu bile bilmiyor.

Bu (işleri konfigürasyon) RTSP aracılığıyla iletilen SDP dosyasıdır:

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 

Ama RTP için RTSP geçiş, eğer çalışmaz. Yukarıdaki SDP dosyasını VLC oynatıcısına yüklemeyi denedim, ancak yardımcı olmuyor. İşte

olan VLC Player 0.8.6d hata ayıklama çıkışının bazı:

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 

(ben elle kopyalamak zorunda çünkü yazım hatası da olabilir - sorma :))

yılında VLC 1.0.5 Bir bilinmeyen yük türü hatası alıyorum ve SDP, Bilinmeyen ağ yığını hatası nedeniyle yüklenemedi. Görüntülenen diğer hatalar SDP bağlantı desteklenmiyor ve Sap demuxer uyarısı: geçersiz SDP.

Herhangi bir yardım büyük takdir edilecektir!

, yerine doğrudan akışı açma SDP dosyası kullanmak yapmak zorunda Ne

Ilya

+1

Tek bir hızlı açıklama: SDP dosyanız teknik açıdan geçersizdir. SPS ve PPS bilgilerini kodlayan, virgülle sınırlandıran ve sprop-parametre-setlerinize ekleyen base-64 olmalıdır. Bunu kesinlikle yanlış olan "H264" dizesine ayarlıyorsunuz (ne yazık ki çok yaygın olsa da). – kidjan

cevap

8

teşekkür ederiz. SDS verilerinin sadece RTSP kullanıldığında iletildiğini ortaya çıkarır. RTP akışını yaparken, SDP dosyasını kendim sağladım. Yaptığım Peki

oldu:

  1. RTSP (işleri yöntemiyle),
  2. Kullanım Wireshark ile Akış metin dosyası olarak,
  3. kaydet SDP RTSP üzerinden iletilen SDP dosyasını kaydetmek için uzantısı ile .sdp,
  4. VLC'de, ağ akışını doğrudan açmak yerine SDP dosyasını açın.

Ve büyü yaptı!