Video streaming 如何从m3u8文件中提取mp4视频

Video streaming 如何从m3u8文件中提取mp4视频,video-streaming,mp4,m3u8,Video Streaming,Mp4,M3u8,我最近一直在使用Chrome扩展或下载站点从一个网站下载视频。然而,最近它开始提供m3u8文件下载链接。我已经在互联网上搜索过了,尝试过很多方法,但我无法下载这些视频。有人知道如何获得这些视频的下载链接吗?非常感谢。 这些视频大多是足球比赛的精彩片段,通常在浏览器中播放,但无法下载。 更新:http@0000018479631d00]协议“http”不在白名单“文件,加密”中! master.m3u8:参数无效这是我使用FFmpeg时遇到的错误。m3u8文件通常是包含实际数据文件链接的文本文件

我最近一直在使用Chrome扩展或下载站点从一个网站下载视频。然而,最近它开始提供m3u8文件下载链接。我已经在互联网上搜索过了,尝试过很多方法,但我无法下载这些视频。有人知道如何获得这些视频的下载链接吗?非常感谢。 这些视频大多是足球比赛的精彩片段,通常在浏览器中播放,但无法下载。 更新:http@0000018479631d00]协议“http”不在白名单“文件,加密”中!
master.m3u8:参数无效
这是我使用FFmpeg时遇到的错误。

m3u8文件通常是包含实际数据文件链接的文本文件

我使用的一个解决方案是在Bash循环中使用
curl
下载实际数据文件,然后连接播放列表中所有下载的文件

您可以尝试以下Bash函数[将其放入
.bashrc
.Bash\u别名文件中,并根据需要对其进行编辑]:

function download-playlist() {
    if [[ -n "$1" ]]; then
        touch ./files.txt;
        counter=1;
        while read line; do
            if [[ "$line" == "http"* ]]; then
                curl --silent -o ${counter}.mp4 "$line";
                echo "file ${counter}.mp4" >> ./files.txt;
                ((counter++));
            fi;
        done < "$1";
        ffmpeg -f concat -safe 0 -i ./files.txt -codec copy output.mp4;
    else
        echo 'Usage: download-playlist <file.m3u8>';
    fi
}
功能下载-播放列表(){
如果[[-n“$1”]];则
触摸./files.txt;
计数器=1;
边读边做
如果[[“$line”==“http”*];则
curl--silent-o${counter}.mp4“$line”;
echo“file${counter}.mp4”>>。/files.txt;
((计数器++);
fi;
完成<“$1”;
ffmpeg-f concat-safe 0-i./files.txt-codec copy output.mp4;
其他的
echo“用法:下载播放列表”;
fi
}
然后您可以这样使用它:
下载playlist master.m3u8


PS:通常
master.m3u8
包含指向子播放列表的链接。该功能可能必须在子播放列表上运行,而不是在实际的
master.m3u8
播放列表上运行。

我已经找到了答案。问题是流已加密,使用FFmpeg时,我遇到了一个错误,即尚不支持SAMPLE-AES加密。因此,除非FFmpeg支持此功能,否则无法下载此类视频。

您应该能够使用VLC或FFmpeg播放和下载。VLC可以处理AES加密。如果你想自己编程,任何语言都可以解决这个问题。@Enrico你是说vlc还是编程解决方案?IIRC vlc将自动处理加密。关于DIY方式,我在这里写下了我是如何解决类似问题的:答案很好!你介意帮我修一下电话吗?缺少一个“f”: