[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