代码之家  ›  专栏  ›  技术社区  ›  Peter Tseng

如何下载服务器上显示的Dash视频文件?

  •  1
  • Peter Tseng  · 技术社区  · 6 年前

    如果有一个mpd文件 https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd ,以便轻松下载存储在服务器上的所有Dash文件(假设我们知道它是服务器上的静态内容)。也就是说,我应该能够运行一个为我下载的内容提供服务的HTTP服务器,并指向一个Dash播放器播放相同的视频。

    enter image description here

    2 回复  |  直到 6 年前
        1
  •  8
  •   Alex X.    6 年前

    不需要开发轮子!

    youtube下载 了解数百个平台/协议/等以及MPEG DASH以及Apple HLS等!

    玩得高兴!

    http://rg3.github.io/youtube-dl/

    附言:

    --keep-fragments                 
    

    下载完成后,将下载的片段保留在磁盘上;默认情况下,片段会被擦除

    升级版:

    youtube-dl.exe -F https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd
    [generic] bbb_30fps: Requesting header
    WARNING: Falling back on generic information extractor.
    [generic] bbb_30fps: Downloading webpage
    [generic] bbb_30fps: Extracting information
    [info] Available formats for bbb_30fps:
    format code                 extension  resolution note
    bbb_a64k                    m4a        audio only DASH audio   67k , m4a_dash container, mp4a.40.5 (48000Hz)
    bbb_30fps_320x180_200k      mp4        320x180    DASH video  254k , mp4_dash container, avc1.64000d, 30fps, video only
    bbb_30fps_320x180_400k      mp4        320x180    DASH video  507k , mp4_dash container, avc1.64000d, 30fps, video only
    bbb_30fps_480x270_600k      mp4        480x270    DASH video  759k , mp4_dash container, avc1.640015, 30fps, video only
    bbb_30fps_640x360_800k      mp4        640x360    DASH video 1013k , mp4_dash container, avc1.64001e, 30fps, video only
    bbb_30fps_640x360_1000k     mp4        640x360    DASH video 1254k , mp4_dash container, avc1.64001e, 30fps, video only
    bbb_30fps_768x432_1500k     mp4        768x432    DASH video 1883k , mp4_dash container, avc1.64001e, 30fps, video only
    bbb_30fps_1024x576_2500k    mp4        1024x576   DASH video 3134k , mp4_dash container, avc1.64001f, 30fps, video only
    bbb_30fps_1280x720_4000k    mp4        1280x720   DASH video 4952k , mp4_dash container, avc1.64001f, 30fps, video only
    bbb_30fps_1920x1080_8000k   mp4        1920x1080  DASH video 9914k , mp4_dash container, avc1.640028, 30fps, video only
    bbb_30fps_3840x2160_12000k  mp4        3840x2160  DASH video 14931k , mp4_dash container, avc1.640033, 30fps, video only (best)
    

    现在,如果希望下载所有比特率的所有片段,可以尝试使用magic选项

    --all-formats
    

    或者你可以使用 --格式

    youtube-dl.exe --format bbb_30fps_320x180_200k --keep-fragments 
    
        2
  •  2
  •   Peter Tseng    5 年前

    我发现了一个项目,它可以下载存储在服务器上的段: https://github.com/Viblast/dash-proxy

    不过,我不得不用叉子为自己修理一些东西: https://github.com/elv-peter/dash-proxy

        3
  •  1
  •   Mick    6 年前

    你可能会发现,实际上并没有一种更简单的方法可以随时为你所用,除非有人碰巧构建了一个工具来完成这项工作,而我并不知道。

    值得记住的是,一个短消息流通常会有多个ABR(自适应比特率)格式副本,服务器上的原始视频实际上会存储在服务器或CDN上的多个不同比特率版本中。

    因此,如果你想复制原始服务器上的内容,你必须创建一个客户端,从所有可用的视频比特率版本下载所有片段。或者直接下载最高质量的版本并自己转码到其他比特率。

    最后,您需要检查您是否有权共享该文件,以及该文件是否未加密,在这种情况下,您可能无法与客户端共享该文件。