Потоковая передача видео H.264 через RTP от Live555 до VLC

Я буду чрезвычайно благодарен, если можно помочь мне с проблемой потоковой передачи 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

7
задан Ilya Kogan 28 June 2010 в 07:52
поделиться

1 ответ

Мне пришлось использовать файл SDP вместо прямого открытия потока. Оказывается, данные SDP передаются только при использовании RTSP. При потоковой передаче RTP мне пришлось самому предоставить файл SDP.

Я сделал следующее:

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

И это творило чудо!

8
ответ дан 7 December 2019 в 05:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: