Opened 6 years ago
Closed 5 years ago
#7801 closed defect (fixed)
facebook https connection fails using ffmpeg with gnu-tls
Reported by: | remitamine | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | avformat |
Version: | git-master | Keywords: | gnutls |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Summary of the bug:
https connection to Facebook servers fails with FFmpeg(using gnu-tls) while it works with FFmpeg(using openssl), VLC(uses gnu-tls), curl(uses openssl), gnutls-cli.
I can attach Wireshark capture files if needed to the facebook server using any configuration with the mentioned tools.
Use case:
watching facebook video using mpv(with youtube-dl integration) with ArchLinux FFmpeg package(based on gnu-tls).
How to reproduce:
log using gnu-tls:
./ffmpeg -v 9 -loglevel 99 -i $(curl 'https://www.facebook.com/Google/videos/vb.104958162837/407275083345153/' | grep -Po '[hs]d_src(?:_no_ratelimit)?\s*:\s*"\K[^"]+') % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 675k 0 675k 0 0 411k 0 --:--:-- 0:00:01 --:--:-- 411k ffmpeg version N-93397-gf8075b2c91 Copyright (c) 2000-2019 the FFmpeg developers built with gcc 8.2.1 (GCC) 20181127 configuration: --enable-gnutls libavutil 56. 26.100 / 56. 26.100 libavcodec 58. 47.103 / 58. 47.103 libavformat 58. 26.101 / 58. 26.101 libavdevice 58. 6.101 / 58. 6.101 libavfilter 7. 48.100 / 7. 48.100 libswscale 5. 4.100 / 5. 4.100 libswresample 3. 4.100 / 3. 4.100 Splitting the commandline. Reading option '-v' ... matched as option 'v' (set logging level) with argument '9'. Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '99'. Reading option '-i' ... matched as input url with argument 'https://video-mrs1-1.xx.fbcdn.net/v/t42.9040-2/50903487_364791754308581_3636070504785248256_n.mp4?_nc_cat=100&efg=eyJ2ZW5jb2RlX3RhZyI6InN2ZV9zZCJ9&_nc_ht=video-mrs1-1.xx&oh=8f24eeb02330f314e494359779f89932&oe=5C90D13B'. Reading option 'https://scontent-mrs1-1.xx.fbcdn.net/v/t66.18014-6/43003158_364041164414690_2702344452620066439_n.mp4?_nc_cat=110&efg=eyJxZV9ncm91cHMiOlsidW5tdXRlZCJdLCJ2ZW5jb2RlX3RhZyI6Im9lcF9oZCJ9&_nc_ht=scontent-mrs1-1.xx&oh=5ada44e9de42d1a5a1688194e54cd036&oe=5D1A66A2' ... matched as output url. Reading option 'https://video-mrs1-1.xx.fbcdn.net/v/t42.9040-2/50903487_364791754308581_3636070504785248256_n.mp4?_nc_cat=100&efg=eyJybHIiOjU5OSwicmxhIjo1MTIsInZlbmNvZGVfdGFnIjoic3ZlX3NkIn0%3D&rl=599&vabr=333&_nc_ht=video-mrs1-1.xx&oh=8f24eeb02330f314e494359779f89932&oe=5C90D13B' ... matched as output url. Finished splitting the commandline. Parsing a group of options: global . Applying option v (set logging level) with argument 9. Successfully parsed a group of options. Parsing a group of options: input url https://video-mrs1-1.xx.fbcdn.net/v/t42.9040-2/50903487_364791754308581_3636070504785248256_n.mp4?_nc_cat=100&efg=eyJ2ZW5jb2RlX3RhZyI6InN2ZV9zZCJ9&_nc_ht=video-mrs1-1.xx&oh=8f24eeb02330f314e494359779f89932&oe=5C90D13B. Successfully parsed a group of options. Opening an input file: https://video-mrs1-1.xx.fbcdn.net/v/t42.9040-2/50903487_364791754308581_3636070504785248256_n.mp4?_nc_cat=100&efg=eyJ2ZW5jb2RlX3RhZyI6InN2ZV9zZCJ9&_nc_ht=video-mrs1-1.xx&oh=8f24eeb02330f314e494359779f89932&oe=5C90D13B. [NULL @ 0x561ba41412c0] Opening 'https://video-mrs1-1.xx.fbcdn.net/v/t42.9040-2/50903487_364791754308581_3636070504785248256_n.mp4?_nc_cat=100&efg=eyJ2ZW5jb2RlX3RhZyI6InN2ZV9zZCJ9&_nc_ht=video-mrs1-1.xx&oh=8f24eeb02330f314e494359779f89932&oe=5C90D13B' for reading [https @ 0x561ba4141e00] Setting default whitelist 'http,https,tls,rtp,tcp,udp,crypto,httpproxy' [tcp @ 0x561ba4144440] Original list of addresses: [tcp @ 0x561ba4144440] Address 31.13.75.14 port 443 [tcp @ 0x561ba4144440] Address 2a03:2880:f009:13:face:b00c:0:1823 port 443 [tcp @ 0x561ba4144440] Interleaved list of addresses: [tcp @ 0x561ba4144440] Address 31.13.75.14 port 443 [tcp @ 0x561ba4144440] Address 2a03:2880:f009:13:face:b00c:0:1823 port 443 [tcp @ 0x561ba4144440] Starting connection attempt to 31.13.75.14 port 443 [tcp @ 0x561ba4144440] Successfully connected to 31.13.75.14 port 443 https://video-mrs1-1.xx.fbcdn.net/v/t42.9040-2/50903487_364791754308581_3636070504785248256_n.mp4?_nc_cat=100&efg=eyJ2ZW5jb2RlX3RhZyI6InN2ZV9zZCJ9&_nc_ht=video-mrs1-1.xx&oh=8f24eeb02330f314e494359779f89932&oe=5C90D13B: Resource temporarily unavailable
log using openssl:
./ffmpeg -v 9 -loglevel 99 -i $(curl 'https://www.facebook.com/Google/videos/vb.104958162837/407275083345153/' | grep -Po '[hs]d_src(?:_no_ratelimit)?\s*:\s*"\K[^"]+') % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 675k 0 675k 0 0 452k 0 --:--:-- 0:00:01 --:--:-- 452k ffmpeg version N-93397-gf8075b2c91 Copyright (c) 2000-2019 the FFmpeg developers built with gcc 8.2.1 (GCC) 20181127 configuration: --enable-openssl libavutil 56. 26.100 / 56. 26.100 libavcodec 58. 47.103 / 58. 47.103 libavformat 58. 26.101 / 58. 26.101 libavdevice 58. 6.101 / 58. 6.101 libavfilter 7. 48.100 / 7. 48.100 libswscale 5. 4.100 / 5. 4.100 libswresample 3. 4.100 / 3. 4.100 Splitting the commandline. Reading option '-v' ... matched as option 'v' (set logging level) with argument '9'. Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '99'. Reading option '-i' ... matched as input url with argument 'https://video-mrs1-1.xx.fbcdn.net/v/t42.9040-2/50903487_364791754308581_3636070504785248256_n.mp4?_nc_cat=100&efg=eyJ2ZW5jb2RlX3RhZyI6InN2ZV9zZCJ9&_nc_ht=video-mrs1-1.xx&oh=c537a387fbc372d40ecb3d9148ed0dd7&oe=5C90FB6B'. Reading option 'https://scontent-mrs1-1.xx.fbcdn.net/v/t66.18014-6/43003158_364041164414690_2702344452620066439_n.mp4?_nc_cat=110&efg=eyJxZV9ncm91cHMiOlsidW5tdXRlZCJdLCJ2ZW5jb2RlX3RhZyI6Im9lcF9oZCJ9&_nc_ht=scontent-mrs1-1.xx&oh=5ada44e9de42d1a5a1688194e54cd036&oe=5D1A66A2' ... matched as output url. Reading option 'https://video-mrs1-1.xx.fbcdn.net/v/t42.9040-2/50903487_364791754308581_3636070504785248256_n.mp4?_nc_cat=100&efg=eyJybHIiOjU5OSwicmxhIjo1MTIsInZlbmNvZGVfdGFnIjoic3ZlX3NkIn0%3D&rl=599&vabr=333&_nc_ht=video-mrs1-1.xx&oh=c537a387fbc372d40ecb3d9148ed0dd7&oe=5C90FB6B' ... matched as output url. Finished splitting the commandline. Parsing a group of options: global . Applying option v (set logging level) with argument 9. Successfully parsed a group of options. Parsing a group of options: input url https://video-mrs1-1.xx.fbcdn.net/v/t42.9040-2/50903487_364791754308581_3636070504785248256_n.mp4?_nc_cat=100&efg=eyJ2ZW5jb2RlX3RhZyI6InN2ZV9zZCJ9&_nc_ht=video-mrs1-1.xx&oh=c537a387fbc372d40ecb3d9148ed0dd7&oe=5C90FB6B. Successfully parsed a group of options. Opening an input file: https://video-mrs1-1.xx.fbcdn.net/v/t42.9040-2/50903487_364791754308581_3636070504785248256_n.mp4?_nc_cat=100&efg=eyJ2ZW5jb2RlX3RhZyI6InN2ZV9zZCJ9&_nc_ht=video-mrs1-1.xx&oh=c537a387fbc372d40ecb3d9148ed0dd7&oe=5C90FB6B. [NULL @ 0x560c760b57c0] Opening 'https://video-mrs1-1.xx.fbcdn.net/v/t42.9040-2/50903487_364791754308581_3636070504785248256_n.mp4?_nc_cat=100&efg=eyJ2ZW5jb2RlX3RhZyI6InN2ZV9zZCJ9&_nc_ht=video-mrs1-1.xx&oh=c537a387fbc372d40ecb3d9148ed0dd7&oe=5C90FB6B' for reading [https @ 0x560c760b6400] Setting default whitelist 'http,https,tls,rtp,tcp,udp,crypto,httpproxy' [tcp @ 0x560c760b8900] Original list of addresses: [tcp @ 0x560c760b8900] Address 31.13.75.14 port 443 [tcp @ 0x560c760b8900] Address 2a03:2880:f009:13:face:b00c:0:1823 port 443 [tcp @ 0x560c760b8900] Interleaved list of addresses: [tcp @ 0x560c760b8900] Address 31.13.75.14 port 443 [tcp @ 0x560c760b8900] Address 2a03:2880:f009:13:face:b00c:0:1823 port 443 [tcp @ 0x560c760b8900] Starting connection attempt to 31.13.75.14 port 443 [tcp @ 0x560c760b8900] Successfully connected to 31.13.75.14 port 443 [https @ 0x560c760b6400] request: GET /v/t42.9040-2/50903487_364791754308581_3636070504785248256_n.mp4?_nc_cat=100&efg=eyJ2ZW5jb2RlX3RhZyI6InN2ZV9zZCJ9&_nc_ht=video-mrs1-1.xx&oh=c537a387fbc372d40ecb3d9148ed0dd7&oe=5C90FB6B HTTP/1.1 ...
log from VLC 3.0.6.
[00007f83240014e0] main tls client debug: looking for tls client module matching "any": 1 candidates ... [00007f83240014e0] gnutls tls client debug: using GnuTLS version 3.6.6 ... [00007f83240014e0] gnutls tls client debug: loaded 154 trusted CAs from system [00007f83240014e0] main tls client debug: using tls client module "gnutls" [00007f83240014e0] main tls client debug: resolving video-mrs1-1.xx.fbcdn.net ... [00007f83240014e0] gnutls tls client debug: TLS handshake: Resource temporarily unavailable, try again. [00007f83240014e0] gnutls tls client debug: TLS handshake: Resource temporarily unavailable, try again. [00007f83240014e0] gnutls tls client debug: TLS handshake: Resource temporarily unavailable, try again. [00007f83240014e0] gnutls tls client debug: TLS handshake: Resource temporarily unavailable, try again. [00007f83240014e0] gnutls tls client debug: TLS handshake: Success.
Change History (2)
comment:1 by , 6 years ago
comment:2 by , 5 years ago
Keywords: | gnutls added |
---|---|
Resolution: | → fixed |
Status: | new → closed |
This was fixed in bc1749c6e46099ec85110361dbe6f7994a63040d and caused ticket #8080.
more verbose log: