[Libav-user] HTTP tunneling with incoming RTSP AAC stream does not work

Taha Ansari mtaha.ansari at gmail.com
Fri Oct 10 11:47:57 CEST 2014


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 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>

--------------*************--------------*************--------------*************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://ffmpeg.org/pipermail/libav-user/attachments/20141010/5f1972e3/attachment.html>


More information about the Libav-user mailing list