Opened 23 months ago
Last modified 23 months ago
#10049 new defect
404 when playing a DASH
Reported by: | changxiangzhong | Owned by: | |
---|---|---|---|
Priority: | normal | Component: | undetermined |
Version: | git-master | Keywords: | DASH 404 |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | yes |
Description (last modified by )
Summary of the bug:
FFprobe cannot detect a DASH stream. With the same stream, Players like ExoPlayer, MPEG-JS, Bitmovin works fine without any issue.
How to reproduce:
ffprobe_g -loglevel trace https://director.livecdn.teliaplay.net/notvm/mso/TV_1HD/dash/manifest.mpd?abs_begin=2022-11-16T08:00:00Z&is_live&no_dolby
It complains certain file chunks end up with a 404 error. such as the following
[dash @ 0x559100d10880] new fragment: min[122164656] max[122164805] [dash @ 0x559100d10880] DASH request for url 'https://director.livecdn.teliaplay.net/notvm/mso/TV_1HD/dash/video-stream-1-150188795682072.mp4', offset 0 [https @ 0x559100d5bec0] Setting default whitelist 'http,https,tls,rtp,tcp,udp,crypto,httpproxy' [tcp @ 0x559100d9b940] Original list of addresses: [tcp @ 0x559100d9b940] Address 84.208.9.141 port 443 [tcp @ 0x559100d9b940] Address 84.208.9.75 port 443 [tcp @ 0x559100d9b940] Address 84.208.9.142 port 443 [tcp @ 0x559100d9b940] Address 84.208.9.76 port 443 [tcp @ 0x559100d9b940] Address 2a02:fe0:1:cd1:570:323:3:75 port 443 [tcp @ 0x559100d9b940] Address 2a02:fe0:1:cd1:570:323:2:75 port 443 [tcp @ 0x559100d9b940] Address 2a02:fe0:1:cd1:570:323:2:76 port 443 [tcp @ 0x559100d9b940] Address 2a02:fe0:1:cd1:570:323:3:76 port 443 [tcp @ 0x559100d9b940] Interleaved list of addresses: [tcp @ 0x559100d9b940] Address 84.208.9.141 port 443 [tcp @ 0x559100d9b940] Address 2a02:fe0:1:cd1:570:323:3:75 port 443 [tcp @ 0x559100d9b940] Address 84.208.9.75 port 443 [tcp @ 0x559100d9b940] Address 2a02:fe0:1:cd1:570:323:2:75 port 443 [tcp @ 0x559100d9b940] Address 84.208.9.142 port 443 [tcp @ 0x559100d9b940] Address 2a02:fe0:1:cd1:570:323:2:76 port 443 [tcp @ 0x559100d9b940] Address 84.208.9.76 port 443 [tcp @ 0x559100d9b940] Address 2a02:fe0:1:cd1:570:323:3:76 port 443 [tcp @ 0x559100d9b940] Starting connection attempt to 84.208.9.141 port 443 [tcp @ 0x559100d9b940] Successfully connected to 84.208.9.141 port 443 [https @ 0x559100d5bec0] request: GET /notvm/mso/TV_1HD/dash/video-stream-1-150188795682072.mp4 HTTP/1.1 User-Agent: Lavf/58.76.100 Accept: */* Connection: close Host: director.livecdn.teliaplay.net Icy-MetaData: 1 [https @ 0x559100d5bec0] header='HTTP/1.1 302 Found' [https @ 0x559100d5bec0] http_code=302 [https @ 0x559100d5bec0] header='Cache-Control: no-store' [https @ 0x559100d5bec0] header='Content-Type: text/plain; charset=utf-8' [https @ 0x559100d5bec0] header='Location: https://m323-cdne01.livecdn.teliaplay.net/notvm/mso/TV_1HD/dash/video-stream-1-150188795682072.mp4' [https @ 0x559100d5bec0] header='Date: Fri, 18 Nov 2022 09:39:58 GMT' [https @ 0x559100d5bec0] header='Content-Length: 0' [https @ 0x559100d5bec0] header='Access-Control-Allow-Origin: *' [https @ 0x559100d5bec0] header='Age: 0' [https @ 0x559100d5bec0] header='Connection: close' [https @ 0x559100d5bec0] header='' [tcp @ 0x559100d52a80] Original list of addresses: [tcp @ 0x559100d52a80] Address 84.208.9.21 port 443 [tcp @ 0x559100d52a80] Address 2a02:fe0:1:cd1:570:323:2:21 port 443 [tcp @ 0x559100d52a80] Interleaved list of addresses: [tcp @ 0x559100d52a80] Address 84.208.9.21 port 443 [tcp @ 0x559100d52a80] Address 2a02:fe0:1:cd1:570:323:2:21 port 443 [tcp @ 0x559100d52a80] Starting connection attempt to 84.208.9.21 port 443 [tcp @ 0x559100d52a80] Successfully connected to 84.208.9.21 port 443 [https @ 0x559100d5bec0] request: GET /notvm/mso/TV_1HD/dash/video-stream-1-150188795682072.mp4 HTTP/1.1 User-Agent: Lavf/58.76.100 Accept: */* Connection: close Host: m323-cdne01.livecdn.teliaplay.net Icy-MetaData: 1 [https @ 0x559100d5bec0] header='HTTP/1.1 404 Not Found' [https @ 0x559100d5bec0] http_code=404 [https @ 0x559100d5bec0] HTTP error 404 Not Found [dash @ 0x559100d10880] Failed to open fragment of playlist
To debug the issue, I've tried both CURL & WGET to download the file chunk without any issue
chang@my_linux:~/Desktop/fix_ffmpeg_telia$ curl -L 4 -vvv --user-agent "Lavf/58.76.100" -H "Connection: close" -H "Icy-MetaData: 1" https://director.livecdn.teliaplay.net/notvm/mso/TV_1HD/dash/video-stream-1-150188795682072.mp4 --output - * Trying 0.0.0.4:80... * Immediate connect fail for 0.0.0.4: No route to host * Closing connection 0 curl: (7) Couldn't connect to server * Trying 84.208.9.76:443... * Connected to director.livecdn.teliaplay.net (84.208.9.76) port 443 (#1) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/ssl/cert.pem * CApath: none * (304) (OUT), TLS handshake, Client hello (1): * (304) (IN), TLS handshake, Server hello (2): * (304) (IN), TLS handshake, Unknown (8): * (304) (IN), TLS handshake, Certificate (11): * (304) (IN), TLS handshake, CERT verify (15): * (304) (IN), TLS handshake, Finished (20): * (304) (OUT), TLS handshake, Finished (20): * SSL connection using TLSv1.3 / AEAD-AES128-GCM-SHA256 * ALPN, server accepted to use h2 * Server certificate: * subject: C=SE; L=SOLNA; O=Telia Company AB; CN=*.livecdn.teliaplay.net * start date: Feb 9 06:41:47 2022 GMT * expire date: Feb 9 06:41:47 2023 GMT * subjectAltName: host "director.livecdn.teliaplay.net" matched cert's "*.livecdn.teliaplay.net" * issuer: C=FI; O=TeliaSonera; CN=TeliaSonera Server CA v2 * SSL certificate verify ok. * Using HTTP2, server supports multiplexing * Connection state changed (HTTP/2 confirmed) * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0 * Using Stream ID: 1 (easy handle 0x128008c00) > GET /notvm/mso/TV_1HD/dash/video-stream-1-150188795682072.mp4 HTTP/2 > Host: director.livecdn.teliaplay.net > user-agent: Lavf/58.76.100 > accept: */* > connection: close > icy-metadata: 1 > < HTTP/2 302 < cache-control: no-store < content-type: text/plain; charset=utf-8 < location: https://m323-cdne01.livecdn.teliaplay.net/notvm/mso/TV_1HD/dash/video-stream-1-150188795682072.mp4 < date: Fri, 18 Nov 2022 09:45:25 GMT < content-length: 0 < access-control-allow-origin: * < age: 0 < * Connection #1 to host director.livecdn.teliaplay.net left intact * Issue another request to this URL: 'https://m323-cdne01.livecdn.teliaplay.net/notvm/mso/TV_1HD/dash/video-stream-1-150188795682072.mp4' * Trying 84.208.9.21:443... * Connected to m323-cdne01.livecdn.teliaplay.net (84.208.9.21) port 443 (#2) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/ssl/cert.pem * CApath: none * (304) (OUT), TLS handshake, Client hello (1): * (304) (IN), TLS handshake, Server hello (2): * (304) (IN), TLS handshake, Unknown (8): * (304) (IN), TLS handshake, Certificate (11): * (304) (IN), TLS handshake, CERT verify (15): * (304) (IN), TLS handshake, Finished (20): * (304) (OUT), TLS handshake, Finished (20): * SSL connection using TLSv1.3 / AEAD-AES128-GCM-SHA256 * ALPN, server accepted to use h2 * Server certificate: * subject: C=SE; L=SOLNA; O=Telia Company AB; CN=*.livecdn.teliaplay.net * start date: Feb 9 06:41:47 2022 GMT * expire date: Feb 9 06:41:47 2023 GMT * subjectAltName: host "m323-cdne01.livecdn.teliaplay.net" matched cert's "*.livecdn.teliaplay.net" * issuer: C=FI; O=TeliaSonera; CN=TeliaSonera Server CA v2 * SSL certificate verify ok. * Using HTTP2, server supports multiplexing * Connection state changed (HTTP/2 confirmed) * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0 * Using Stream ID: 1 (easy handle 0x128008c00) > GET /notvm/mso/TV_1HD/dash/video-stream-1-150188795682072.mp4 HTTP/2 > Host: m323-cdne01.livecdn.teliaplay.net > user-agent: Lavf/58.76.100 > accept: */* > connection: close > icy-metadata: 1 > < HTTP/2 200 < cache-control: public, max-age=7200 < content-length: 1168457 < content-type: video/mp4 < date: Fri, 18 Nov 2022 09:40:00 GMT < etag: "2022-11-18T09:39:58.480" < last-modified: Fri, 18 Nov 2022 09:39:58 GMT < last-modified-milliseconds: Fri, 18 Nov 2022 09:39:58.480 GMT < origin-instance: so-service-02 < access-control-allow-origin: * < age: 324 < accept-ranges: bytes < Warning: Binary output can mess up your terminal. Use "--output -" to tell Warning: curl to output it to your terminal anyway, or consider "--output Warning: <FILE>" to save to a file. * Failure writing output to destination * stopped the pause stream! * Connection #2 to host m323-cdne01.livecdn.teliaplay.net left intact
I've already tweak the CURL command to send additional headers just like ffprobe. But CURL still works as expected.
Update 1
I've also tried with the same dash stream url without any parameters. Result remains the same - it works with dash.js, exoplayer and bitmovin. But not ffmpeg (master branch)
https://director.livecdn.teliaplay.net/notvm/mso/TV_1HD/dash/manifest.mpd