Я буду чрезвычайно благодарен, если можно помочь мне с проблемой потоковой передачи H264, которую я пытался решить в течение многих недель.
Я должен передать видео 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 до RTP, он не работает. Я попытался загрузить вышеупомянутое файл SDP в плеере VLC, но это не помогает.
Вот часть вывода отладки Плеера VLC 0.8.6d:
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 '[]:0@[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 infos не поддерживаемый и Сок demuxer предупреждение: недопустимый SDP.
Любая справка будет значительно цениться!
Спасибо,
Ilya
Мне пришлось использовать файл SDP вместо прямого открытия потока. Оказывается, данные SDP передаются только при использовании RTSP. При потоковой передаче RTP мне пришлось самому предоставить файл SDP.
Я сделал следующее:
И это творило чудо!