[Libav-user] HTTP tunneling with incoming RTSP AAC stream does not work
Andy Shaules
bowljoman at gmail.com
Sat Oct 11 20:59:05 CEST 2014
On 10/11/2014 3:05 AM, Taha Ansari wrote:
> Hi,
>
> Is there anybody out there who has faced a similar issue? I'm sure
> there would be... any feedback would be highly appreciated...
>
> On Fri, Oct 10, 2014 at 2:47 PM, Taha Ansari <mtaha.ansari at gmail.com
> <mailto:mtaha.ansari at gmail.com>> wrote:
>
>
> On Thu, Oct 9, 2014 at 6:02 PM, Taha Ansari
> <mtaha.ansari at gmail.com <mailto:mtaha.ansari at gmail.com>> wrote:
>
> Hi,
>
> I have a specific scenario: in a restricted network
> environment, I have discovered sometimes there is problem with
> live reception of data via RTSP protocol. Reading at mailing
> list and other locations got me to a point where I discovered
> I could use HTTP tunneling to bypass proxies etc. I have
> upcoming two streams:
>
> 1- RTSP live h264 stream
> 2- RTSP live AAC stream
>
> When I apply HTTP tunneling method with h264 data, it works
> without any problem. But, if I try it with AAC data, audio
> never gets through.
>
> Here is uncut console output when trying to fetch such AAC
> streams via RTSP protocol, while the server is at a remote
> location (some portions are changed to protect privacy):
>
> --------------*************--------------*************--------------*************
> D:\....\ffmpeg-20141009-git-f6777ce-win32-shared\bin>ffpla
> y -rtsp_transport http -loglevel debug
> rtsp://143.115.111.123:1943/a.aac
> <http://143.115.111.123:1943/a.aac>
> ffplay version N-66742-gf6777ce Copyright (c) 2003-2014 the
> FFmpeg developers
> built on Oct 8 2014 22:05:56 with gcc 4.9.1 (GCC)
> configuration: --disable-static --enable-shared --enable-gpl
> --enable-version3
> --disable-w32threads --enable-avisynth --enable-bzlib
> --enable-fontconfig --ena
> ble-frei0r --enable-gnutls --enable-iconv --enable-libass
> --enable-libbluray --e
> nable-libbs2b --enable-libcaca --enable-libfreetype
> --enable-libgme --enable-lib
> gsm --enable-libilbc --enable-libmodplug --enable-libmp3lame
> --enable-libopencor
> e-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
> --enable-libopus --enabl
> e-librtmp --enable-libschroedinger --enable-libsoxr
> --enable-libspeex --enable-l
> ibtheora --enable-libtwolame --enable-libvidstab
> --enable-libvo-aacenc --enable-
> libvo-amrwbenc --enable-libvorbis --enable-libvpx
> --enable-libwavpack --enable-l
> ibwebp --enable-libx264 --enable-libx265 --enable-libxavs
> --enable-libxvid --ena
> ble-zlib
> libavutil 54. 10.100 / 54. 10.100
> libavcodec 56. 4.101 / 56. 4.101
> libavformat 56. 9.100 / 56. 9.100
> libavdevice 56. 1.100 / 56. 1.100
> libavfilter 5. 1.103 / 5. 1.103
> libswscale 3. 1.100 / 3. 1.100
> libswresample 1. 1.100 / 1. 1.100
> libpostproc 53. 1.100 / 53. 1.100
> [http @ 01d798e0] request: GET /a.aac HTTP/1.10KB sq= 0B f=0/0
> User-Agent: Lavf/56.9.100
> Range: bytes=0-
> Connection: close
> Host: 143.115.111.123:1943 <http://143.115.111.123:1943>
> Icy-MetaData: 1
> x-sessioncookie: 85cc4e8bbbeffd24
> Accept: application/x-rtsp-tunnelled
> Pragma: no-cache
> Cache-Control: no-cache
>
>
> [http @ 01d798e0] header='HTTP/1.1 200 OK' 0KB sq= 0B f=0/0
> [http @ 01d798e0] http_code=200
> [http @ 01d798e0] header='Date: Thu, 9 Oct 2014 12:46:10 GMT'
> [http @ 01d798e0] header='Server: [some server name]'
> [http @ 01d798e0] header='Connection: Close'
> [http @ 01d798e0] header='Content-Type:
> application/x-rtsp-tunnelled'
> [http @ 01d798e0] header='Expires: -1'
> [http @ 01d798e0] header='Cache-Control: private, max-age=0'
> [http @ 01d798e0] header=''
> [http @ 01d7e420] request: POST /a.aac HTTP/1.1KB sq= 0B f=0/0
> User-Agent: Lavf/56.9.100
> Accept: */*
> Connection: close
> Host: 143.115.111.123:1943 <http://143.115.111.123:1943>
> Icy-MetaData: 1
> x-sessioncookie: 85cc4e8bbbeffd24
> Content-Type: application/x-rtsp-tunnelled
> Pragma: no-cache
> Cache-Control: no-cache
> Content-Length: 32767
> Expires: Sun, 9 Jan 1972 00:00:00 GMT
>
>
> [rtsp @ 01d79d00] SDP:= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
> v=0
> o=- 1951159390 1412858771 IN IP4 143.115.111.123
> s=
> c=IN IP4 0.0.0.0
> t=0 0
> m=audio 0 RTP/AVP 96
> a=rtpmap:96 MPEG4-GENERIC/22050/2
> a=fmtp:96
> profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdelta
> length=3;config=1390;
> a=control:trackID=2
>
> [rtsp @ 01d79d00] audio codec set to: aac
> [rtsp @ 01d79d00] audio samplerate set to: 22050
> [rtsp @ 01d79d00] audio channels set to: 2
> [rtsp @ 01d79d00] hello state=0 0KB vq= 0KB sq= 0B f=0/0
> [rtsp @ 01d79d00] method PLAY failed: 500 SERVER ERROR 0B f=0/0
> [rtsp @ 01d79d00] Server: [some server name]
> CSeq: 4
> Cache-Control: no-cache
> Date: Thu, 9 Oct 2014 12:46:12 GMT
> Expires: Thu, 9 Oct 2014 12:46:12 GMT
> Session: 31565451546595;timeout=30
> x-Error: Failed to create audio
>
> rtsp://143.115.111.123:1943/a.aac
> <http://143.115.111.123:1943/a.aac>: Invalid data found when
> processing input
>
>
> D:\....\ffmpeg-20141009-git-f6777ce-win32-shared\bin>
> --------------*************--------------*************--------------*************
>
> As can be seen, it fails somewhere at " method PLAY failed:
> 500 SERVER ERROR". Searching online for this does not give me
> much help, except that 500 SERVER ERROR is a general kind of
> error (without any details).
>
> This is the latest version of FFmpeg I downloaded from zeranoe
> builds page today...
>
> Has anyone experienced anything this sort before? Is there any
> remedy?
>
> Thanks in advance for any guidance...
>
>
>
> Hi,
>
> I have made little progress: if I specify "-initial_pause 1 " at
> command line, then after waiting for about 40 seconds, I am able
> to see new window pop up (the FFplay black window that shows white
> stuff depending upon audio signal), but this window is totally
> black, and even after waiting for some time, audio is never audible.
>
> Do I need to signal initial_pause to 'off', somehow?
>
> Here is updated command line with debug output (again some stuff
> like server IP changed intentionally):
>
> --------------*************--------------*************--------------*************
>
> D:\ffmpeg-20141009-git-f6777ce-win32-shared\bin>ffplay -loglevel
> debug -rtsp_transport http -initial_pause 1
> rtsp://144.122.222.22:2757/a.aac <http://144.122.222.22:2757/a.aac>
> ffplay version N-66742-gf6777ce Copyright (c) 2003-2014 the FFmpeg
> developers
> built on Oct 8 2014 22:05:56 with gcc 4.9.1 (GCC)
> configuration: --disable-static --enable-shared --enable-gpl
> --enable-version3
> --disable-w32threads --enable-avisynth --enable-bzlib
> --enable-fontconfig --ena
> ble-frei0r --enable-gnutls --enable-iconv --enable-libass
> --enable-libbluray --e
> nable-libbs2b --enable-libcaca --enable-libfreetype
> --enable-libgme --enable-lib
> gsm --enable-libilbc --enable-libmodplug --enable-libmp3lame
> --enable-libopencor
> e-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
> --enable-libopus --enabl
> e-librtmp --enable-libschroedinger --enable-libsoxr
> --enable-libspeex --enable-l
> ibtheora --enable-libtwolame --enable-libvidstab
> --enable-libvo-aacenc --enable-
> libvo-amrwbenc --enable-libvorbis --enable-libvpx
> --enable-libwavpack --enable-l
> ibwebp --enable-libx264 --enable-libx265 --enable-libxavs
> --enable-libxvid --ena
> ble-zlib
> libavutil 54. 10.100 / 54. 10.100
> libavcodec 56. 4.101 / 56. 4.101
> libavformat 56. 9.100 / 56. 9.100
> libavdevice 56. 1.100 / 56. 1.100
> libavfilter 5. 1.103 / 5. 1.103
> libswscale 3. 1.100 / 3. 1.100
> libswresample 1. 1.100 / 1. 1.100
> libpostproc 53. 1.100 / 53. 1.100
> [http @ 02239a20] request: GET /a.aac HTTP/1.10KB sq= 0B f=0/0
> User-Agent: Lavf/56.9.100
> Range: bytes=0-
> Connection: close
> Host: 144.122.222.22:2757 <http://144.122.222.22:2757>
> Icy-MetaData: 1
> x-sessioncookie: 5210038d40d12611
> Accept: application/x-rtsp-tunnelled
> Pragma: no-cache
> Cache-Control: no-cache
>
>
> [http @ 02239a20] header='HTTP/1.1 200 OK' 0KB sq= 0B f=0/0
> [http @ 02239a20] http_code=200
> [http @ 02239a20] header='Date: Fri, 10 Oct 2014 09:39:29 GMT'
> [http @ 02239a20] header='Server: [some streaming server]'
> [http @ 02239a20] header='Connection: Close'
> [http @ 02239a20] header='Content-Type: application/x-rtsp-tunnelled'
> [http @ 02239a20] header='Expires: -1'
> [http @ 02239a20] header='Cache-Control: private, max-age=0'
> [http @ 02239a20] header=''
> [http @ 0223d560] request: POST /a.aac HTTP/1.1KB sq= 0B f=0/0
> User-Agent: Lavf/56.9.100
> Accept: */*
> Connection: close
> Host: 144.122.222.22:2757 <http://144.122.222.22:2757>
> Icy-MetaData: 1
> x-sessioncookie: 5210038d40d12611
> Content-Type: application/x-rtsp-tunnelled
> Pragma: no-cache
> Cache-Control: no-cache
> Content-Length: 32767
> Expires: Sun, 9 Jan 1972 00:00:00 GMT
>
>
> [rtsp @ 02239e20] SDP:= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
> v=0
> o=- 545483151 1412933970 IN IP4 144.122.222.22
> s=
> c=IN IP4 0.0.0.0
> t=0 0
> m=audio 0 RTP/AVP 96
> a=rtpmap:96 MPEG4-GENERIC/22050/2
> a=fmtp:96
> profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdelta
> length=3;config=1390;
> a=control:trackID=2
>
> [rtsp @ 02239e20] audio codec set to: aac
> [rtsp @ 02239e20] audio samplerate set to: 22050
> [rtsp @ 02239e20] audio channels set to: 2
> Input #0, rtsp, from 'rtsp://144.122.222.22:2757/a.aac':0B
> <http://144.122.222.22:2757/a.aac%27:0B> f=0/0
> Metadata:
> title :
> Duration: N/A, bitrate: N/A
> Stream #0:0, 0, 1/22050: Audio: aac, 22050 Hz, stereo, fltp
> detected 4 logical cores
> [ffplay_abuffer @ 022bb880] Setting 'sample_rate' to value '22050'
> [ffplay_abuffer @ 022bb880] Setting 'sample_fmt' to value 'fltp'
> [ffplay_abuffer @ 022bb880] Setting 'channels' to value '2'
> [ffplay_abuffer @ 022bb880] Setting 'time_base' to value '1/22050'
> [ffplay_abuffer @ 022bb880] Setting 'channel_layout' to value '0x3'
> [ffplay_abuffer @ 022bb880] tb:1/22050 samplefmt:fltp
> samplerate:22050 chlayout:
> 0x3
> [ffplay_abuffersink @ 022d1100] auto-inserting filter
> 'auto-inserted resampler 0
> ' between the filter 'ffplay_abuffer' and the filter
> 'ffplay_abuffersink'
> [AVFilterGraph @ 0221e860] query_formats: 2 queried, 0 merged, 3
> already done, 0
> delayed
> [auto-inserted resampler 0 @ 022d2d00] ch:2 chl:stereo fmt:fltp
> r:22050Hz -> ch:
> 2 chl:stereo fmt:s16 r:22050Hz
> nan M-A: nan fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
>
> D:\ffmpeg-20141009-git-f6777ce-win32-shared\bin>
>
> --------------*************--------------*************--------------*************
>
>
>
>
> _______________________________________________
> Libav-user mailing list
> Libav-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/libav-user
AAC works for me, but we use transport -rtsp_transport tcp flag. Maybe
your server is serving RTSP TCP over HTTP.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://ffmpeg.org/pipermail/libav-user/attachments/20141011/b0588e9e/attachment.html>
More information about the Libav-user
mailing list