Opened 11 years ago

Last modified 11 years ago

#2907 new defect

RTMPE Support

Reported by: Mirko Puliafito Owned by:
Priority: normal Component: avformat
Version: git-master Keywords: rtmp, rtmpe, flv
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

RTMPE demuxing seems not to work on current version using native implementation (ffrtmpcrypt)

How to reproduce:

ffmpeg -loglevel debug -probesize 4000 -i rtmpe://127.0.0.1/live/myStream -rtmp_swfverify http://127.0.0.1/test.swf -acodec copy -vcodec copy -f flv /home/mirkpul/Scrivania/test_audio.flv

Output:

ffmpeg version N-55765-g8d679bc Copyright (c) 2000-2013 the FFmpeg developers

built on Aug 26 2013 14:46:16 with gcc 4.7 (Ubuntu/Linaro 4.7.2-2ubuntu1)
configuration: --disable-everything --disable-shared --enable-static --enable-pic --enable-encoder=flv --enable-decoder=flv --enable-protocol=rtmp --enable-protocol=file --enable-muxer=flv --enable-demuxer=flv --enable-encoder=nellymoser --enable-decoder=nellymoser --enable-muxer=swf --enable-demuxer=swf --enable-encoder=adpcm_swf --enable-decoder=adpcm_swf --enable-protocol=rtmpe --enable-openssl --disable-stripping --enable-debug=3 --extra-cflags=-g --disable-optimizations
libavutil 52. 42.100 / 52. 42.100
libavcodec 55. 29.100 / 55. 29.100
libavformat 55. 14.102 / 55. 14.102
libavdevice 55. 3.100 / 55. 3.100
libavfilter 3. 82.102 / 3. 82.102
libswscale 2. 5.100 / 2. 5.100
libswresample 0. 17.103 / 0. 17.103

Splitting the commandline.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Reading option '-probesize' ... matched as AVOption 'probesize' with argument '4000'.
Reading option '-i' ... matched as input file with argument 'rtmpe://127.0.0.1/live/myStream'.
Reading option '-rtmp_swfverify' ... matched as AVOption 'rtmp_swfverify' with argument 'http://127.0.0.1/test.swf'.
Reading option '-acodec' ... matched as option 'acodec' (force audio codec ('copy' to copy stream)) with argument 'copy'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'copy'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'flv'.
Reading option '/home/mirkpul/Scrivania/test_audio.flv' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input file rtmpe://127.0.0.1/live/myStream.
Successfully parsed a group of options.
Opening an input file: rtmpe://127.0.0.1/live/myStream.
[rtmpe @ 0x213bb00] Handshaking...
[rtmpe @ 0x213bb00] Type answer 6
[rtmpe @ 0x213bb00] Server version 0.0.0.0
[rtmpe @ 0x213bb00] Proto = rtmpe, path = /live/myStream, app = live, fname = myStream
rtmpe://127.0.0.1/live/myStream: Input/output error

Attachments (1)

test-ffmpeg-rtmpe.zip (731.6 KB ) - added by Mirko Puliafito 11 years ago.
Flash ui

Download all attachments as: .zip

Change History (6)

comment:1 by Carl Eugen Hoyos, 11 years ago

Please test with

$ ./configure --enable-openssl

or

$ ./configure --enable-gnutls

Generally, you should only use --disable-everything here if you want to report a specific problem about the option, please don't use when reporting missing features (or bugs).

comment:2 by Mirko Puliafito, 11 years ago

Sorry,

those were my settings. BTW I'm getting the same error with openssl:

ffmpeg version N-55765-g8d679bc Copyright (c) 2000-2013 the FFmpeg developers

built on Aug 27 2013 12:19:50 with gcc 4.7 (Ubuntu/Linaro 4.7.2-2ubuntu1)
configuration: --enable-openssl --enable-protocol=rtmpe
libavutil 52. 42.100 / 52. 42.100
libavcodec 55. 29.100 / 55. 29.100
libavformat 55. 14.102 / 55. 14.102
libavdevice 55. 3.100 / 55. 3.100
libavfilter 3. 82.102 / 3. 82.102
libswscale 2. 5.100 / 2. 5.100
libswresample 0. 17.103 / 0. 17.103

Splitting the commandline.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Reading option '-probesize' ... matched as AVOption 'probesize' with argument '4000'.
Reading option '-i' ... matched as input file with argument 'rtmpe://127.0.0.1/live/myStream'.
Reading option '-rtmp_swfverify' ... matched as AVOption 'rtmp_swfverify' with argument 'http://127.0.0.1/test.swf'.
Reading option '-acodec' ... matched as option 'acodec' (force audio codec ('copy' to copy stream)) with argument 'copy'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'copy'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'flv'.
Reading option '/home/mirkpul/Scrivania/test_audio.flv' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input file rtmpe://127.0.0.1/live/myStream.
Successfully parsed a group of options.
Opening an input file: rtmpe://127.0.0.1/live/myStream.
[rtmpe @ 0x33d9b00] Handshaking...
[rtmpe @ 0x33d9b00] Type answer 6
[rtmpe @ 0x33d9b00] Server version 0.0.0.0
[rtmpe @ 0x33d9b00] Proto = rtmpe, path = /live/myStream, app = live, fname = myStream
rtmpe://127.0.0.1/live/myStream: Input/output error

and with gnutls:

ffmpeg version N-55765-g8d679bc Copyright (c) 2000-2013 the FFmpeg developers

built on Aug 27 2013 12:25:31 with gcc 4.7 (Ubuntu/Linaro 4.7.2-2ubuntu1)
configuration: --enable-gnutls --enable-protocol=rtmpe
libavutil 52. 42.100 / 52. 42.100
libavcodec 55. 29.100 / 55. 29.100
libavformat 55. 14.102 / 55. 14.102
libavdevice 55. 3.100 / 55. 3.100
libavfilter 3. 82.102 / 3. 82.102
libswscale 2. 5.100 / 2. 5.100
libswresample 0. 17.103 / 0. 17.103

Splitting the commandline.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument 'debug'.
Reading option '-i' ... matched as input file with argument 'rtmpe://127.0.0.1/live/myStream'.
Reading option '-rtmp_swfverify' ... matched as AVOption 'rtmp_swfverify' with argument 'http://127.0.0.1/test.swf'.
Reading option '-acodec' ... matched as option 'acodec' (force audio codec ('copy' to copy stream)) with argument 'copy'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'copy'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'flv'.
Reading option '/home/mirkpul/Scrivania/test_audio.flv' ... matched as output file.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option loglevel (set logging level) with argument debug.
Successfully parsed a group of options.
Parsing a group of options: input file rtmpe://127.0.0.1/live/myStream.
Successfully parsed a group of options.
Opening an input file: rtmpe://127.0.0.1/live/myStream.
[rtmpe @ 0x22b4320] Handshaking...
[rtmpe @ 0x22b4320] Type answer 6
[rtmpe @ 0x22b4320] Server version 0.0.0.0
[rtmpe @ 0x22b4320] Proto = rtmpe, path = /live/myStream, app = live, fname = myStream
rtmpe://127.0.0.1/live/myStream: Input/output error

comment:3 by Mirko Puliafito, 11 years ago

Sometimes it also hangs on the "get_packet" just after the "gen_connect" on line 2493 libavformat/rtmpproto.c.

It seems that there's something wrong with the handshake and the server is no more replying to the client.

comment:4 by Carl Eugen Hoyos, 11 years ago

Which server is this / how can the problem be reproduced?

by Mirko Puliafito, 11 years ago

Attachment: test-ffmpeg-rtmpe.zip added

Flash ui

comment:5 by Mirko Puliafito, 11 years ago

I tried both with red5 media server:

http://www.red5.org/red5-server/

and crtmpserver:

http://www.rtmpd.com/

I used the attached flash app to publish the stream (you need to change the URL to rtmp://127.0.0.1/live and then connect, change the name after Publish video to myStream and then click Publish)

and then try to demux using the provided command.

Note: See TracTickets for help on using tickets.