Opened 6 years ago
Closed 4 years ago
#3845 closed defect (fixed)
[tls @ 0x7fb64af13f20] error:00000000:lib(0):func(0):reason(0) at the end of a WebM file through HTTPS
Reported by: | viperfx | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avformat |
Version: | git-master | Keywords: | tls http mkv |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
Summary of the bug:
Near the end of a WebM file that is opened through HTTPS connection an error occurs with the following:
[tls @ 0x7fb64af13f20] error:00000000:lib(0):func(0):reason(0)
How to reproduce: (You must follow these steps to obtain the HTTPS link to reproduce the error)
Obtain the youtube audio stream link using youtube-dl (https://github.com/rg3/youtube-dl) % youtube-dl -f 171 -g YOUTUBE_URL where YOUTUBE_URL is the url of any youtube video. The youtube-dl command will print out a long URL string that you can input to FFmpeg or ffplay to notice the issue, it will be an HTTPS URL. % ffmpeg -i "STREAM_URL" or % ffplay "STREAM_URL" Towards the end of the playback you should get the TLS error. My FFmpeg info: ffmpeg version 2.2.1 Copyright (c) 2000-2014 the FFmpeg developers built on Aug 9 2014 10:03:55 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) configuration: --prefix=/usr/local/Cellar/ffmpeg/2.2.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-ffplay --enable-libfdk-aac --enable-openssl libavutil 52. 66.100 / 52. 66.100 libavcodec 55. 52.102 / 55. 52.102 libavformat 55. 33.100 / 55. 33.100 libavdevice 55. 10.100 / 55. 10.100 libavfilter 4. 2.100 / 4. 2.100 libavresample 1. 2. 0 / 1. 2. 0 libswscale 2. 5.102 / 2. 5.102 libswresample 0. 18.100 / 0. 18.100 libpostproc 52. 3.100 / 52. 3.100 Output of a typical audio stream: Input #0, matroska,webm, from 'URL': Metadata: encoder : google Duration: 00:04:00.62, start: 0.000000, bitrate: 108 kb/s Stream #0:0(eng): Audio: vorbis, 44100 Hz, stereo, fltp (default)
Change History (18)
comment:1 Changed 6 years ago by cehoyos
comment:2 Changed 6 years ago by viperfx
Yes, I have compiled FFmpeg with HEAD and the error still occurs.
ffplay version 2.3.git Copyright (c) 2003-2014 the FFmpeg developers built on Aug 11 2014 10:26:03 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-ffplay --enable-libfdk-aac --enable-openssl libavutil 54. 1.100 / 54. 1.100 libavcodec 56. 0.100 / 56. 0.100 libavformat 56. 0.100 / 56. 0.100 libavdevice 56. 0.100 / 56. 0.100 libavfilter 5. 0.100 / 5. 0.100 libavresample 2. 1. 0 / 2. 1. 0 libswscale 3. 0.100 / 3. 0.100 libswresample 1. 0.100 / 1. 0.100 libpostproc 53. 0.100 / 53. 0.100 Input #0, matroska,webm, from 'URL': Metadata: encoder : google Duration: 00:04:34.56, start: 0.000000, bitrate: 130 kb/s Stream #0:0(eng): Audio: vorbis, 44100 Hz, stereo, fltp (default) [tls @ 0x7f9b69707580] error:00000000:lib(0):func(0):reason(0)0/0
comment:3 follow-up: ↓ 4 Changed 6 years ago by cehoyos
Is the problem only reproducible with ffplay or also with ffmpeg? ffplay depends on an external library that is known to contain bugs and ffplay issues are generally far more difficult to reproduce, please only report ffplay problems if they are not reproducible with ffmpeg.
comment:4 in reply to: ↑ 3 Changed 6 years ago by viperfx
Replying to cehoyos:
Is the problem only reproducible with ffplay or also with ffmpeg? ffplay depends on an external library that is known to contain bugs and ffplay issues are generally far more difficult to reproduce, please only report ffplay problems if they are not reproducible with ffmpeg.
Would encoding the stream to an mp3 be enough proof?
ffmpeg -i URL -acodec libmp3lame -q:a 2 -f mp3 - > test.mp3
With that command I get the following output:
ffmpeg -i "URL" -acodec libmp3lame -q:a 2 -f mp3 - > test.mp3 ffmpeg version 2.3.git Copyright (c) 2000-2014 the FFmpeg developers built on Aug 11 2014 10:26:03 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-ffplay --enable-libfdk-aac --enable-openssl libavutil 54. 1.100 / 54. 1.100 libavcodec 56. 0.100 / 56. 0.100 libavformat 56. 0.100 / 56. 0.100 libavdevice 56. 0.100 / 56. 0.100 libavfilter 5. 0.100 / 5. 0.100 libavresample 2. 1. 0 / 2. 1. 0 libswscale 3. 0.100 / 3. 0.100 libswresample 1. 0.100 / 1. 0.100 libpostproc 53. 0.100 / 53. 0.100 Input #0, matroska,webm, from 'URL': Metadata: encoder : google Duration: 00:04:34.56, start: 0.000000, bitrate: 130 kb/s Stream #0:0(eng): Audio: vorbis, 44100 Hz, stereo, fltp (default) Output #0, mp3, to 'pipe:': Metadata: TSSE : Lavf56.0.100 Stream #0:0(eng): Audio: mp3 (libmp3lame), 44100 Hz, stereo, fltp (default) Metadata: encoder : Lavc56.0.100 libmp3lame Stream mapping: Stream #0:0 -> #0:0 (vorbis (native) -> mp3 (libmp3lame)) Press [q] to stop, [?] for help size= 6368kB time=00:04:34.60 bitrate= 190.0kbits/s video:0kB audio:6368kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000675%
It does not seem to be an issue when encoding.
comment:5 Changed 6 years ago by viperfx
- Resolution set to fixed
- Status changed from new to closed
I was using OpenSSL on 1.0.1g on iOS. Compiling FFmpeg (HEAD) with the latest openssl (1.0.1i) seems to have fixed it for me on iOS.
comment:6 Changed 6 years ago by cehoyos
- Resolution changed from fixed to invalid
- Version changed from 2.2.4 to git-master
comment:7 Changed 6 years ago by viperfx
- Resolution invalid deleted
- Status changed from closed to reopened
It seems that the issue is not fixed. After some extended testing I still get this error.
I am using FFmpeg (HEAD) with the latest openssl (1.0.1i).
comment:8 follow-up: ↓ 9 Changed 6 years ago by cehoyos
Then please provide your ffmpeg command line including complete, uncut console output.
comment:9 in reply to: ↑ 8 Changed 6 years ago by viperfx
Replying to cehoyos:
Then please provide your ffmpeg command line including complete, uncut console output.
Using which command? I am using the API on iOS.
comment:10 follow-up: ↓ 11 Changed 6 years ago by cehoyos
Is the problem only reproducible on iOS?
comment:11 in reply to: ↑ 10 Changed 6 years ago by viperfx
Replying to cehoyos:
Is the problem only reproducible on iOS?
Well on command line I was not able to reproduce it, when I encoded the file to another format. On iOS, yes I that error occurs sometimes towards the end of a playback.
comment:12 Changed 6 years ago by cehoyos
If the problem is reproducible with ffplay but not ffmpeg, please provide the ffplay command line (current FFmpeg git head) together with the complete uncut console output.
comment:13 Changed 6 years ago by viperfx
Here is the flags I compile ffmpeg with for iOS. I am using the latest snapshot and using openssl v1.0.1i
./configure --disable-programs --disable-shared --enable-static --enable-pic --enable-small --enable-openssl ${DEBUG_CONFIG_ARGS} \ --disable-decoders --enable-decoder=aac --enable-decoder=h264 --enable-decoder=vorbis \ --disable-encoders --enable-encoder=aac \ --disable-demuxers --enable-demuxer=aac --enable-demuxer=mov --enable-demuxer=matroska --enable-demuxer=h264 \ --disable-muxers --enable-muxer=mov --enable-muxer=mp4 --enable-muxer=hls --enable-muxer=h264 \ --disable-filters --disable-doc
Here is the output using ffplay
$ ffplay "https://r3---sn-u5a3u5a3-ajtz.googlevideo.com/videoplayback?gcr=gb&upn=GSnTpgPXqh4&source=youtube&fexp=902408%2C904724%2C923346%2C927622%2C931983%2C934024%2C934030%2C941415%2C946012&mws=yes&lmt=1394439266170970&expire=1407797900&dur=240.621&ms=au&ipbits=0&sver=3&sparams=clen%2Cdur%2Cgcr%2Cgir%2Cid%2Cip%2Cipbits%2Citag%2Clmt%2Crequiressl%2Csource%2Cupn%2Cexpire&mv=m&mt=1407776233&key=yt5&gir=yes&requiressl=yes&ip=85.210.155.249&itag=171&clen=3264561&mm=31&id=o-AI6SFCI3O9ZAesd5gmWqRO0Z7xJDcKz3GTFV22GsNZki&signature=E514B8F316DB6DC334366F0EAD65C140724E451D.EB6D203C0F267800F6ED711D67FB878BF745732B&ratebypass=yes" ffplay version 2.3.git Copyright (c) 2003-2014 the FFmpeg developers built on Aug 11 2014 10:26:03 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) configuration: --prefix=/usr/local/Cellar/ffmpeg/HEAD --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-ffplay --enable-libfdk-aac --enable-openssl libavutil 54. 1.100 / 54. 1.100 libavcodec 56. 0.100 / 56. 0.100 libavformat 56. 0.100 / 56. 0.100 libavdevice 56. 0.100 / 56. 0.100 libavfilter 5. 0.100 / 5. 0.100 libavresample 2. 1. 0 / 2. 1. 0 libswscale 3. 0.100 / 3. 0.100 libswresample 1. 0.100 / 1. 0.100 libpostproc 53. 0.100 / 53. 0.100 Input #0, matroska,webm, from 'https://r3---sn-u5a3u5a3-ajtz.googlevideo.com/videoplayback?gcr=gb&upn=GSnTpgPXqh4&source=youtube&fexp=902408%2C904724%2C923346%2C927622%2C931983%2C934024%2C934030%2C941415%2C946012&mws=yes&lmt=1394439266170970&expire=1407797900&dur=240.621&ms=au&ipbits=0&sver=3&sparams=clen%2Cdur%2Cgcr%2Cgir%2Cid%2Cip%2Cipbits%2Citag%2Clmt%2Crequiressl%2Csource%2Cupn%2Cexpire&mv=m&mt=1407776233&key=yt5&gir=yes&requiressl=yes&ip=85.210.155.249&itag=171&clen=3264561&mm=31&id=o-AI6SFCI3O9ZAesd5gmWqRO0Z7xJDcKz3GTFV22GsNZki&signature=E514B8F316DB6DC334366F0EAD65C140724E451D.EB6D203C0F267800F6ED711D67FB878BF745732B&ratebypass=yes': Metadata: encoder : google Duration: 00:04:00.62, start: 0.000000, bitrate: 108 kb/s Stream #0:0(eng): Audio: vorbis, 44100 Hz, stereo, fltp (default) [tls @ 0x7fce00737f40] error:00000000:lib(0):func(0):reason(0)0/0
comment:14 follow-up: ↓ 15 Changed 6 years ago by cehoyos
I see a similar problem with tls, -autoexit didn't work:
$ ffplay -autoexit "https://r4---sn-bvvbax-8pxe.googlevideo.com/videoplayback?itag=171&mws=yes&mt=1407784028&clen=3517500&sver=3&lmt=1392577165969919&signature=0D0BD8B88F84BA006DA9BDEC7FEB946D978D56F0.6E39194558775D891DBCF30EB50D6E166EBF0F12&sparams=clen%2Cdur%2Cgcr%2Cgir%2Cid%2Cip%2Cipbits%2Citag%2Clmt%2Crequiressl%2Csource%2Cupn%2Cexpire&ipbits=0&mv=m&ms=au&requiressl=yes&source=youtube&fexp=902408%2C927622%2C927894%2C930657%2C931983%2C934024%2C934030%2C937432%2C943908%2C945035%2C946013&gcr=at&upn=3KY97TSgiI0&dur=252.222&ip=84.114.78.119&mm=31&gir=yes&key=yt5&expire=1407805695&id=o-APBb1hr8cgnHFmIl1jqTZtUgs6HFFest6fIF4RFfToUB&ratebypass=yes" ffplay version N-65523-g9a16214 Copyright (c) 2003-2014 the FFmpeg developers built on Aug 11 2014 20:58:53 with gcc 4.7 (SUSE Linux) configuration: --enable-gnutls libavutil 54. 1.100 / 54. 1.100 libavcodec 56. 0.100 / 56. 0.100 libavformat 56. 0.100 / 56. 0.100 libavdevice 56. 0.100 / 56. 0.100 libavfilter 5. 0.100 / 5. 0.100 libswscale 3. 0.100 / 3. 0.100 libswresample 1. 0.100 / 1. 0.100 Input #0, matroska,webm, from 'https://r4---sn-bvvbax-8pxe.googlevideo.com/videoplayback?itag=171&mws=yes&mt=1407784028&clen=3517500&sver=3&lmt=1392577165969919&signature=0D0BD8B88F84BA006DA9BDEC7FEB946D978D56F0.6E39194558775D891DBCF30EB50D6E166EBF0F12&sparams=clen%2Cdur%2Cgcr%2Cgir%2Cid%2Cip%2Cipbits%2Citag%2Clmt%2Crequiressl%2Csource%2Cupn%2Cexpire&ipbits=0&mv=m&ms=au&requiressl=yes&source=youtube&fexp=902408%2C927622%2C927894%2C930657%2C931983%2C934024%2C934030%2C937432%2C943908%2C945035%2C946013&gcr=at&upn=3KY97TSgiI0&dur=252.222&ip=84.114.78.119&mm=31&gir=yes&key=yt5&expire=1407805695&id=o-APBb1hr8cgnHFmIl1jqTZtUgs6HFFest6fIF4RFfToUB&ratebypass=yes': Metadata: encoder : google Duration: 00:04:12.22, start: 0.000000, bitrate: 111 kb/s Stream #0:0(eng): Audio: vorbis, 44100 Hz, stereo, fltp (default) [tls @ 0x7f0408002d80] The TLS connection was non-properly terminated. [tls @ 0x7f0408002d80] The specified session has been invalidated for some reason. 269.22 M-A: 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
comment:15 in reply to: ↑ 14 Changed 6 years ago by viperfx
Replying to cehoyos:
I see a similar problem with tls, -autoexit didn't work:
$ ffplay -autoexit "https://r4---sn-bvvbax-8pxe.googlevideo.com/videoplayback?itag=171&mws=yes&mt=1407784028&clen=3517500&sver=3&lmt=1392577165969919&signature=0D0BD8B88F84BA006DA9BDEC7FEB946D978D56F0.6E39194558775D891DBCF30EB50D6E166EBF0F12&sparams=clen%2Cdur%2Cgcr%2Cgir%2Cid%2Cip%2Cipbits%2Citag%2Clmt%2Crequiressl%2Csource%2Cupn%2Cexpire&ipbits=0&mv=m&ms=au&requiressl=yes&source=youtube&fexp=902408%2C927622%2C927894%2C930657%2C931983%2C934024%2C934030%2C937432%2C943908%2C945035%2C946013&gcr=at&upn=3KY97TSgiI0&dur=252.222&ip=84.114.78.119&mm=31&gir=yes&key=yt5&expire=1407805695&id=o-APBb1hr8cgnHFmIl1jqTZtUgs6HFFest6fIF4RFfToUB&ratebypass=yes" ffplay version N-65523-g9a16214 Copyright (c) 2003-2014 the FFmpeg developers built on Aug 11 2014 20:58:53 with gcc 4.7 (SUSE Linux) configuration: --enable-gnutls libavutil 54. 1.100 / 54. 1.100 libavcodec 56. 0.100 / 56. 0.100 libavformat 56. 0.100 / 56. 0.100 libavdevice 56. 0.100 / 56. 0.100 libavfilter 5. 0.100 / 5. 0.100 libswscale 3. 0.100 / 3. 0.100 libswresample 1. 0.100 / 1. 0.100 Input #0, matroska,webm, from 'https://r4---sn-bvvbax-8pxe.googlevideo.com/videoplayback?itag=171&mws=yes&mt=1407784028&clen=3517500&sver=3&lmt=1392577165969919&signature=0D0BD8B88F84BA006DA9BDEC7FEB946D978D56F0.6E39194558775D891DBCF30EB50D6E166EBF0F12&sparams=clen%2Cdur%2Cgcr%2Cgir%2Cid%2Cip%2Cipbits%2Citag%2Clmt%2Crequiressl%2Csource%2Cupn%2Cexpire&ipbits=0&mv=m&ms=au&requiressl=yes&source=youtube&fexp=902408%2C927622%2C927894%2C930657%2C931983%2C934024%2C934030%2C937432%2C943908%2C945035%2C946013&gcr=at&upn=3KY97TSgiI0&dur=252.222&ip=84.114.78.119&mm=31&gir=yes&key=yt5&expire=1407805695&id=o-APBb1hr8cgnHFmIl1jqTZtUgs6HFFest6fIF4RFfToUB&ratebypass=yes': Metadata: encoder : google Duration: 00:04:12.22, start: 0.000000, bitrate: 111 kb/s Stream #0:0(eng): Audio: vorbis, 44100 Hz, stereo, fltp (default) [tls @ 0x7f0408002d80] The TLS connection was non-properly terminated. [tls @ 0x7f0408002d80] The specified session has been invalidated for some reason. 269.22 M-A: 0.000 fd= 0 aq= 0KB vq= 0KB sq= 0B f=0/0
So this is a confirmed bug? Can the ticket be updated so someone may look into the issue?
comment:16 Changed 5 years ago by klpu
How about resolve this issue?
comment:17 Changed 5 years ago by donmez
I can reproduce with latest trunk on Linux with gnutls 3.4.8:
λ ffplay-head https://www.youtube.com/watch?v=SdaR8VBh_F0
ffplay version N-78269-gc1b23e1 Copyright (c) 2003-2016 the FFmpeg developers
built with gcc 5 (SUSE Linux)
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --incdir=/usr/include/ffmpeg --extra-cflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g' --optflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g' --disable-htmlpages --enable-pic --disable-stripping --disable-shared --enable-static --enable-runtime-cpudetect --enable-gpl --disable-openssl --enable-avresample --enable-libcdio --enable-libdc1394 --enable-gnutls --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libvorbis --enable-libvpx --enable-libwebp --enable-pic --enable-pthreads --enable-vaapi --enable-vdpau --disable-decoder=dca --enable-libdcadec --enable-libmp3lame --enable-version3 --enable-libx264 --enable-libx265 --enable-x11grab
libavutil 55. 17.100 / 55. 17.100
libavcodec 57. 24.101 / 57. 24.101
libavformat 57. 24.100 / 57. 24.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 28.100 / 6. 28.100
libavresample 3. 0. 0 / 3. 0. 0
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
[tls @ 0x292ccc0] The TLS connection was non-properly terminated.
https://www.youtube.com/watch?v=SdaR8VBh_F0: Input/output error
comment:18 Changed 4 years ago by cehoyos
- Component changed from undetermined to avformat
- Keywords tls http mkv added; openssl webm removed
- Reproduced by developer set
- Resolution set to fixed
- Status changed from reopened to closed
Fixed by Martin Storsjö since 9f7a2ecb (2.4).
Is this problem reproducible with current FFmpeg git head?
To make this a valid ticket, please provide the complete, uncut console output of the current version.