[Libav-user] HTTP tunneling with incoming RTSP AAC stream does not work
Taha Ansari
mtaha.ansari at gmail.com
Mon Oct 13 07:29:43 CEST 2014
On Sat, Oct 11, 2014 at 11:59 PM, Andy Shaules <bowljoman at gmail.com> wrote:
> 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>
> wrote:
>
>>
>> On Thu, Oct 9, 2014 at 6:02 PM, Taha Ansari <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
>>> 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
>>> 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
>>> 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: 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
>> 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
>> 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
>> 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 listLibav-user at ffmpeg.orghttp://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.
>
>
Hi,
Many thanks for the reply... I tried with -rtsp_transport tcp, but all i
get is:
Invalid data found when processing input.
So if the server is causing this to happen, then maybe I have to change my
server? That seems a lot of work...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://ffmpeg.org/pipermail/libav-user/attachments/20141013/92bc2399/attachment.html>
More information about the Libav-user
mailing list