[FFmpeg-trac] #9470(avformat:open): m3u8 keepalive does not work between domains and DV + Atmos fails
FFmpeg
trac at avcodec.org
Wed Mar 23 21:05:40 EET 2022
#9470: m3u8 keepalive does not work between domains and DV + Atmos fails
------------------------------------+------------------------------------
Reporter: Balling | Owner: (none)
Type: defect | Status: open
Priority: normal | Component: avformat
Version: git-master | Resolution:
Keywords: hls | Blocked By:
Blocking: | Reproduced by developer: 1
Analyzed by developer: 0 |
------------------------------------+------------------------------------
Changes (by Balling):
* status: new => open
Old description:
> Summary of the bug:
>
> Apple TV+ has very good trailers in Dolby Vision profile 5 using IPTPQc2
> and Dolby Atmos. Yet, since audio is supposed to be streaming from a
> different CDN than video (on both CDNs both video and audio is available
> though). Keepalive fails though between two domains vod-
> ap2-aoc.tv.apple.com:-1 != vod-ak-aoc.tv.apple.com:-1. Issue was here:
> https://github.com/yt-dlp/yt-dlp/issues/771#issuecomment-918152831
>
> Now in practise it fails only after parsing all ~200 streams in 5 minutes
> but... So, why IS hls.js so much faster than ffmpeg??? See:
> https://tv.apple.com/us/show/the-morning-
> show/umc.cmc.25tn3v8ku4b39tr6ccgb8nl6m (yeah, m3u8 stream is from there).
> FFmpeg has all the same. I will also point out that you can extract eac3
> audio and hevc Dolby Vision stream with -c copy -stric unofficial and it
> will work on my LG C9.
> How to reproduce:
> {{{
> % ffplay.exe
> "https://play.itunes.apple.com/WebObjects/MZPlay.woa/hls/subscription/playlist.m3u8?cc=US&svcId=tvs.vds.4105&a=1580273278&isExternal=true&brandId=tvs.sbd.4000&id=337246031&l
> =en-US&aec=UHD&xtrick=true&webbrowser=true"
> ffplay.exe
> "https://play.itunes.apple.com/WebObjects/MZPlay.woa/hls/subscription/playlist.m3u8?cc=US&svcId=tvs.vds.4105&a=1580273278&isExternal=true&brandId=tvs.sbd.4000&id=337246031&l
> =en-US&aec=UHD&xtrick=true&webbrowser=true"
> ffplay version N-104341-g933765aa0e-20211013 Copyright (c) 2003-2021 the
> FFmpeg developers
> built with gcc 10-win32 (GCC) 20210408
> configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static
> --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64
> --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug
> --enable-shared --disable-static --disable-w32threads --enable-pthreads
> --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype
> --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig
> --enable-libvorbis --enable-opencl --enable-libvmaf --enable-vulkan
> --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-
> avisynth --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac
> --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libglslang
> --enable-libgme --enable-libass --enable-libbluray --enable-libmp3lame
> --enable-libopus --enable-libtheora --enable-libvpx --enable-libwebp
> --enable-lv2 --enable-libmfx --enable-libopencore-amrnb --enable-
> libopencore-amrwb --enable-libopenjpeg --enable-librav1e --enable-
> librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-
> libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d
> --disable-libdrm --disable-vaapi --enable-libvidstab --enable-libx264
> --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg
> --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags=
> --extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-
> version=20211013
> libavutil 57. 7.100 / 57. 7.100
> libavcodec 59. 12.100 / 59. 12.100
> libavformat 59. 6.100 / 59. 6.100
> libavdevice 59. 0.101 / 59. 0.101
> libavfilter 8. 14.100 / 8. 14.100
> libswscale 6. 1.100 / 6. 1.100
> libswresample 4. 0.100 / 4. 0.100
> libpostproc 56. 0.100 / 56. 0.100
> [hls @ 00000228e4d07600] Skip ('#EXT-X-VERSION:7')sq= 0B f=0/0
> [hls @ 00000228e4d07600] Skip ('#EXT-X-INDEPENDENT-SEGMENTS')
> [hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
> ID="com.apple.hls.advisory-info.count",VALUE="0"')
> [hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
> ID="com.apple.hls.display-ratings-overlay",VALUE="true"')
> [hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
> ID="com.apple.hls.title",VALUE="Bombshell: Season 2",LANGUAGE="en-US"')
> [hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
> ID="com.apple.hls.poster",VALUE="https://is3-ssl.mzstatic.com/image/thumb/S4hvyopZQCav14Oag70Mhg/{w}x{h}bb.{f}",LANGUAGE
> ="en-US"')
> [hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
> ID="com.apple.hls.genre",VALUE="Drama",LANGUAGE="en-US"')
> [hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
> ID="com.apple.hls.feature.adam-id",VALUE="1580273278"')
> [hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
> ID="com.apple.hls.feature.duration",VALUE="148.148"')
> [hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
> ID="com.apple.hls.pre-roll.count",VALUE="0"')
> [hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
> ID="com.apple.hls.pre-roll.duration",VALUE="0.000"')
> [hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
> ID="com.apple.hls.mid-roll.count",VALUE="0"')
> [hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
> ID="com.apple.hls.skip.count",VALUE="0"')
> [hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
> ID="com.apple.hls.post-roll.count",VALUE="0"')
> [hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
> ID="com.apple.hls.post-roll.duration",VALUE="0.000"')
> [hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
> ID="com.apple.hls.keys",VALUE="W10="')
> [hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
> ID="com.apple.hls.format",VALUE="HD,4K"')
> [hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
> ID="com.apple.hls.quality",VALUE="DV,HDR,Atmos"')
> [hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
> ID="com.apple.hls.accessibility",VALUE="CC,SDH,AD"')
> [hls @ 00000228e4d07600] Can't support the subtitle(uri: https://vod-
> ap2-aoc.tv.apple.com/itunes-
> assets/VideoPreview125/v4/6f/37/47/6f374738-bd20-2673-6421-df03c3fdf6a8/P337246031_A1580273278_ar_subtitles_V1.m3u8)
> ***
>
> [https @ 00000228eba2c040] Cannot reuse HTTP connection for different
> host: vod-ap2-aoc.tv.apple.com:-1 != vod-ak-aoc.tv.apple.com:-1
> [hls @ 00000228e4d07600] keepalive request failed for 'https://vod-ak-
> aoc.tv.apple.com/itunes-
> assets/VideoPreview125/v4/b7/a5/a6/b7a5a620-9977-e5f6-f242-7cb3939de3d3/P337246031_A1580273278_en_audio_gr32-.m3u8'
> with error: 'Invalid argument' when parsing playlist
> [hls @ 00000228e4d07600] Opening 'https://vod-ak-aoc.tv.apple.com/itunes-
> assets/VideoPreview125/v4/b7/a5/a6/b7a5a620-9977-e5f6-f242-7cb3939de3d3/P337246031_A1580273278_en_audio_gr32-.m3u8'
> for reading
> }}}
> Patches should be submitted to the ffmpeg-devel mailing list and not this
> bug tracker.
New description:
Summary of the bug:
Apple TV+ has very good trailers in Dolby Vision profile 5 using IPTPQc2
and Dolby Atmos. Yet, since audio is supposed to be streaming from a
different CDN than video (on both CDNs both video and audio is available
though). Keepalive fails though between two domains vod-
ap2-aoc.tv.apple.com:-1 != vod-ak-aoc.tv.apple.com:-1. Issue was here:
https://github.com/yt-dlp/yt-dlp/issues/771#issuecomment-918152831
Now in practise it fails only after parsing all ~200 streams in 5 minutes
but... So, why IS hls.js so much faster than ffmpeg??? See:
https://tv.apple.com/us/show/the-morning-
show/umc.cmc.25tn3v8ku4b39tr6ccgb8nl6m (yeah, m3u8 stream is from there).
FFmpeg has all the same. I will also point out that you can extract eac3
audio and hevc Dolby Vision stream with -c copy -strict unofficial and it
will work on my LG C9, triggering both atmos and vision.
How to reproduce:
{{{
% ffplay.exe
"https://play.itunes.apple.com/WebObjects/MZPlay.woa/hls/subscription/playlist.m3u8?cc=US&svcId=tvs.vds.4105&a=1580273278&isExternal=true&brandId=tvs.sbd.4000&id=337246031&l
=en-US&aec=UHD&xtrick=true&webbrowser=true"
ffplay.exe
"https://play.itunes.apple.com/WebObjects/MZPlay.woa/hls/subscription/playlist.m3u8?cc=US&svcId=tvs.vds.4105&a=1580273278&isExternal=true&brandId=tvs.sbd.4000&id=337246031&l
=en-US&aec=UHD&xtrick=true&webbrowser=true"
ffplay version N-104341-g933765aa0e-20211013 Copyright (c) 2003-2021 the
FFmpeg developers
built with gcc 10-win32 (GCC) 20210408
configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static
--pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64
--target-os=mingw32 --enable-gpl --enable-version3 --disable-debug
--enable-shared --disable-static --disable-w32threads --enable-pthreads
--enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype
--enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig
--enable-libvorbis --enable-opencl --enable-libvmaf --enable-vulkan
--disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-
avisynth --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac
--enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libglslang
--enable-libgme --enable-libass --enable-libbluray --enable-libmp3lame
--enable-libopus --enable-libtheora --enable-libvpx --enable-libwebp
--enable-lv2 --enable-libmfx --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libopenjpeg --enable-librav1e --enable-
librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-
libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d
--disable-libdrm --disable-vaapi --enable-libvidstab --enable-libx264
--enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg
--enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags=
--extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-
version=20211013
libavutil 57. 7.100 / 57. 7.100
libavcodec 59. 12.100 / 59. 12.100
libavformat 59. 6.100 / 59. 6.100
libavdevice 59. 0.101 / 59. 0.101
libavfilter 8. 14.100 / 8. 14.100
libswscale 6. 1.100 / 6. 1.100
libswresample 4. 0.100 / 4. 0.100
libpostproc 56. 0.100 / 56. 0.100
[hls @ 00000228e4d07600] Skip ('#EXT-X-VERSION:7')sq= 0B f=0/0
[hls @ 00000228e4d07600] Skip ('#EXT-X-INDEPENDENT-SEGMENTS')
[hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-ID="com.apple.hls
.advisory-info.count",VALUE="0"')
[hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-ID="com.apple.hls
.display-ratings-overlay",VALUE="true"')
[hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
ID="com.apple.hls.title",VALUE="Bombshell: Season 2",LANGUAGE="en-US"')
[hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
ID="com.apple.hls.poster",VALUE="https://is3-ssl.mzstatic.com/image/thumb/S4hvyopZQCav14Oag70Mhg/{w}x{h}bb.{f}",LANGUAGE
="en-US"')
[hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
ID="com.apple.hls.genre",VALUE="Drama",LANGUAGE="en-US"')
[hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
ID="com.apple.hls.feature.adam-id",VALUE="1580273278"')
[hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
ID="com.apple.hls.feature.duration",VALUE="148.148"')
[hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-ID="com.apple.hls
.pre-roll.count",VALUE="0"')
[hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-ID="com.apple.hls
.pre-roll.duration",VALUE="0.000"')
[hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-ID="com.apple.hls
.mid-roll.count",VALUE="0"')
[hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
ID="com.apple.hls.skip.count",VALUE="0"')
[hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-ID="com.apple.hls
.post-roll.count",VALUE="0"')
[hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-ID="com.apple.hls
.post-roll.duration",VALUE="0.000"')
[hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
ID="com.apple.hls.keys",VALUE="W10="')
[hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
ID="com.apple.hls.format",VALUE="HD,4K"')
[hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
ID="com.apple.hls.quality",VALUE="DV,HDR,Atmos"')
[hls @ 00000228e4d07600] Skip ('#EXT-X-SESSION-DATA:DATA-
ID="com.apple.hls.accessibility",VALUE="CC,SDH,AD"')
[hls @ 00000228e4d07600] Can't support the subtitle(uri: https://vod-
ap2-aoc.tv.apple.com/itunes-
assets/VideoPreview125/v4/6f/37/47/6f374738-bd20-2673-6421-df03c3fdf6a8/P337246031_A1580273278_ar_subtitles_V1.m3u8)
***
[https @ 00000228eba2c040] Cannot reuse HTTP connection for different
host: vod-ap2-aoc.tv.apple.com:-1 != vod-ak-aoc.tv.apple.com:-1
[hls @ 00000228e4d07600] keepalive request failed for 'https://vod-ak-
aoc.tv.apple.com/itunes-
assets/VideoPreview125/v4/b7/a5/a6/b7a5a620-9977-e5f6-f242-7cb3939de3d3/P337246031_A1580273278_en_audio_gr32-.m3u8'
with error: 'Invalid argument' when parsing playlist
[hls @ 00000228e4d07600] Opening 'https://vod-ak-aoc.tv.apple.com/itunes-
assets/VideoPreview125/v4/b7/a5/a6/b7a5a620-9977-e5f6-f242-7cb3939de3d3/P337246031_A1580273278_en_audio_gr32-.m3u8'
for reading
}}}
Patches should be submitted to the ffmpeg-devel mailing list and not this
bug tracker.
--
--
Ticket URL: <https://trac.ffmpeg.org/ticket/9470#comment:4>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list