[FFmpeg-devel] Ffmpeg/ffprobe not work well with a DASH stream
Chang, Xiangzhong
xiangzhong.chang at telia.no
Fri Nov 18 14:45:10 EET 2022
Thank you, Steve, I¡¯ve synced my code base to your commit#. I tried to configure the code as much like yours as possible. But mine is a Linux box on HP laptop. For me, the result remains the same ¨C ffprobe_g was unable to detect the stream type.
chang at 640g2:~/git-root/FFmpeg$ ./ffprobe_g --version
ffprobe version N-109033-g86157f5a25 Copyright (c) 2007-2022 the FFmpeg developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
configuration: --disable-optimizations --disable-shared --disable-stripping --enable-debug --enable-debug=3 --enable-demuxer=dash --enable-ffplay --enable-filter=delogo --enable-fontconfig --enable-gpl --enable-htmlpages --enable-libaom --enable-libfdk-aac --enable-libfreetype --enable-libopus --enable-libspeex --enable-libv4l2 --enable-libv4l2 --enable-libx264 --enable-libx265 --enable-libx265 --enable-libxml2 --enable-libzmq --enable-nonfree --enable-openssl --enable-pthreads --enable-pthreads --enable-shared --enable-vaapi --enable-vaapi --enable-vdpau --enable-xlib --enable-zlib
libavutil 57. 42.100 / 57. 42.100
libavcodec 59. 52.100 / 59. 52.100
libavformat 59. 34.101 / 59. 34.101
libavdevice 59. 8.101 / 59. 8.101
libavfilter 8. 50.100 / 8. 50.100
libswscale 6. 8.112 / 6. 8.112
libswresample 4. 9.100 / 4. 9.100
libpostproc 56. 7.100 / 56. 7.100
You have to specify one input file.
Use -h to get full help or, even better, run 'man ffprobe'.
[1]+ Terminated ./ffprobe_g -loglevel trace http://director.livecdn.teliaplay.net/notvm/mso/TV_1HD/dash/manifest.mpd?abs_begin=2022-11-16T08:00:00Z
chang at 640g2:~/git-root/FFmpeg$ ./ffprobe_g -loglevel trace http://director.livecdn.teliaplay.net/notvm/mso/TV_1HD/dash/manifest.mpd?abs_begin=2022-11-16T08:00:00Z&is_live&no_dolby
¡
[http @ 0x55a993990f00] HTTP error 404 Not Found
[dash @ 0x55a9939677c0] Failed to open fragment of playlist
The following indicates ffprobe_g is linking to the correct runtime library
chang at 640g2:~/git-root/FFmpeg$ ldd ./ffprobe_g
linux-vdso.so.1 (0x00007ffc75b94000)
libavdevice.so.59 => ./libavdevice/libavdevice.so.59 (0x00007fa234b60000)
libavfilter.so.8 => ./libavfilter/libavfilter.so.8 (0x00007fa234528000)
libavformat.so.59 => ./libavformat/libavformat.so.59 (0x00007fa2341e5000)
libavcodec.so.59 => ./libavcodec/libavcodec.so.59 (0x00007fa232a88000)
libpostproc.so.56 => ./libpostproc/libpostproc.so.56 (0x00007fa232a67000)
libswresample.so.4 => ./libswresample/libswresample.so.4 (0x00007fa232a3f000)
libswscale.so.6 => ./libswscale/libswscale.so.6 (0x00007fa232894000)
libavutil.so.57 => ./libavutil/libavutil.so.57 (0x00007fa23267f000)
From: ffmpeg-devel <ffmpeg-devel-bounces at ffmpeg.org> on behalf of Steven Liu <lingjiujianke at gmail.com>
Date: Friday, 18 November 2022 at 12:27
To: FFmpeg development discussions and patches <ffmpeg-devel at ffmpeg.org>
Subject: Re: [FFmpeg-devel] Ffmpeg/ffprobe not work well with a DASH stream
Chang, Xiangzhong <xiangzhong.chang at telia.no> ÓÚ2022Äê11ÔÂ17ÈÕÖÜËÄ 22:00дµÀ£º
>
> Hi,
>
> Thank you so much for this amazing project. I¡¯ve found this project has been extremely useful for me.
> I¡¯ve found out that ffmpeg/ffplay does not work well with one of our DASH streams. In comparison, I¡¯ve tried the following players
>
> 1. ExoPlayer
> 2. DASH-JS player<https://reference.dashif.org/dash.js/v4.5.1/samples/dash-if-reference-player/index.html>
> 3. Bitmovin JS player<https://bitmovin.com/demos/stream-test?format=dash&manifest=https%3A%2F%2Fdirector.livecdn.teliaplay.net%2Fnotvm%2Fmso%2FTV_1HD%2Fdash%2Fmanifest.mpd>
>
> I was using the following script trying to probe/transcoding one of our DASH stream.
> ```
> ffprobe_g -loglevel debug "https://director.livecdn.teliaplay.net/notvm/mso/TV_1HD/dash/manifest.mpd?abs_begin=2022-11-16T08:00:00Z&is_live&no_dolby"
(base) liuqi05:ffmpeg liuqi$
~/multimedia/upstream_ffmpeg/ufbuild/ffprobe
"https://director.livecdn.teliaplay.net/notvm/mso/TV_1HD/dash/manifest.mpd?abs_begin=2022-11-16T08:00:00Z&is_live&no_dolby"
ffprobe(70115,0x113793600) malloc: nano zone abandoned due to
inability to preallocate reserved vm space.
ffprobe version N-109033-g86157f5a25 Copyright (c) 2007-2022 the
FFmpeg developers
built with Apple clang version 13.1.6 (clang-1316.0.21.2.5)
configuration: --prefix=/usr/local/ --libdir=/usr/local/lib/
--cc=clang --enable-htmlpages --enable-libx264 --enable-gpl
--extra-ldflags='-I/usr/local/opt/openssl/include/ -O0 -g3
-fsanitize=address -Wno-error -fPIC -I/usr/local/include'
--extra-ldflags='-O0 -g3 -fsanitize=address -Wno-error -fPIC
-L/usr/local/lib -L/usr/local/opt/openssl/lib' --enable-libfreetype
--enable-fontconfig --enable-libspeex --enable-libopus --enable-libzmq
--enable-libx265 --enable-libass --enable-videotoolbox
--disable-optimizations --enable-audiotoolbox --enable-opengl
--disable-stripping --samples=../../fate-suite/
--enable-encoder=hevc_videotoolbox --enable-hwaccel=hevc_videotoolbox
--enable-hwaccel=h264_videotoolbox --enable-openssl --enable-nonfree
--disable-shared --enable-libfdk_aac --enable-libxml2
--enable-libmp3lame --enable-libaom
libavutil 57. 42.100 / 57. 42.100
libavcodec 59. 52.100 / 59. 52.100
libavformat 59. 34.101 / 59. 34.101
libavdevice 59. 8.101 / 59. 8.101
libavfilter 8. 50.100 / 8. 50.100
libswscale 6. 8.112 / 6. 8.112
libswresample 4. 9.100 / 4. 9.100
libpostproc 56. 7.100 / 56. 7.100
[dash @ 0x617000000080] DTS discontinuity in stream 0: packet 99 with
DTS 150189356926262, packet 100 with DTS 150189360168062
Input #0, dash, from
'https://director.livecdn.teliaplay.net/notvm/mso/TV_1HD/dash/manifest.mpd?abs_begin=2022-11-16T08:00:00Z&is_live&no_dolby':
Duration: N/A, start: 1668770630.554022, bitrate: N/A
Program 0
Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv,
bt709), 1280x720 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn (default)
Metadata:
variant_bitrate : 5000000
id : video-stream-1
Stream #0:1: Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv,
bt709), 1280x720 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn (default)
Metadata:
variant_bitrate : 3000000
id : video-stream-2
Stream #0:2: Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv,
bt709), 1024x576 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn (default)
Metadata:
variant_bitrate : 1750000
id : video-stream-3
Stream #0:3: Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv,
bt709), 640x360 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn (default)
Metadata:
variant_bitrate : 1000000
id : video-stream-4
Stream #0:4: Video: h264 (Constrained Baseline) (avc1 / 0x31637661),
yuv420p(tv, bt709), 448x252 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k
tbn (default)
Metadata:
variant_bitrate : 300000
id : video-stream-5
Stream #0:5(nor): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
stereo, fltp (default)
Metadata:
variant_bitrate : 192000
id : audio-stream-1
(base) liuqi05:ffmpeg liuqi$
> ```
>
> The following log have drawn my attention. It seems like ffprobe has failed to download some file chunks.
> ```
> [dash @ 0x55b477e86880] DASH request for url 'https://director.livecdn.teliaplay.net/notvm/mso/TV_1HD/dash/video-stream-1-150182387590546.mp4', offset 0
> [tcp @ 0x55b477f09080] Starting connection attempt to 84.208.9.142 port 443
> [tcp @ 0x55b477f09080] Successfully connected to 84.208.9.142 port 443
> [tcp @ 0x55b477ed0f00] Starting connection attempt to 84.208.9.21 port 443
> [tcp @ 0x55b477ed0f00] Successfully connected to 84.208.9.21 port 443
> [https @ 0x55b477eee1c0] HTTP error 404 Not Found
> ```
>
> However, when I was using wget to download it, all works out
> ```
> hhk9417 at HC994R6KQD:~/Desktop$ wget https://director.livecdn.teliaplay.net/notvm/mso/TV_1HD/dash/video-stream-1-150182387590546.mp4
> --2022-11-17 14:53:30-- https://director.livecdn.teliaplay.net/notvm/mso/TV_1HD/dash/video-stream-1-150182387590546.mp4
> Resolving director.livecdn.teliaplay.net (director.livecdn.teliaplay.net)... 84.208.9.75, 84.208.9.76, 84.208.9.141, ...
> Connecting to director.livecdn.teliaplay.net (director.livecdn.teliaplay.net)|84.208.9.75|:443... connected.
> HTTP request sent, awaiting response... 302 Found
> Location: https://m323-cdne01.livecdn.teliaplay.net/notvm/mso/TV_1HD/dash/video-stream-1-150182387590546.mp4 [following]
> --2022-11-17 14:53:30-- https://m323-cdne01.livecdn.teliaplay.net/notvm/mso/TV_1HD/dash/video-stream-1-150182387590546.mp4
> Resolving m323-cdne01.livecdn.teliaplay.net (m323-cdne01.livecdn.teliaplay.net)... 84.208.9.21
> Connecting to m323-cdne01.livecdn.teliaplay.net (m323-cdne01.livecdn.teliaplay.net)|84.208.9.21|:443... connected.
> HTTP request sent, awaiting response... 200 OK
> Length: 1293307 (1,2M) [video/mp4]
> Saving to: ¡®video-stream-1-150182387590546.mp4¡¯
>
> video-stream-1-150182387590546.mp4 100%[=====================================================================================================>] 1,23M --.-KB/s in 0,02s
>
> 2022-11-17 14:53:30 (50,8 MB/s) - ¡®video-stream-1-150182387590546.mp4¡¯ saved [1293307/1293307]
> ```
>
> Regarding the FFmpeg SDK, I¡¯m using the latest master branch, I¡¯ve compiled it from scratch. The following are my compilation configs
> ```
> --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265 --enable-filter=delogo --enable-debug --disable-optimizations --enable-libspeex --enable-shared --enable-pthreads --enable-vaapi --enable-ffplay --disable-stripping --enable-debug=3 --enable-libopus --enable-libv4l2 --enable-zlib --enable-vaapi --enable-pthreads --enable-vdpau --enable-xlib --enable-libv4l2 --enable-libfreetype --enable-demuxer=dash --enable-libxml2 --enable-libaom --enable-libx265 --enable-openssl"
> #define FFMPEG_LICENSE "nonfree and unredistributable
> ```
>
> Cheers.
>
>
>
>
> This email may contain information which is privileged or protected against unauthorized disclosure or communication. If you are not the intended recipient, please notify the sender and delete this message and any attachments from your system without producing, distributing or retaining copies thereof or disclosing its contents to any other person.
>
> Telia Company processes emails and other files that may contain personal data in accordance with Telia Company¡¯s Privacy Policy<https://www.teliacompany.com/en/about-the-company/privacy/>.
>
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel at ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
More information about the ffmpeg-devel
mailing list