Недавно я загружал видео с веб-сайта, используя расширения Chrome или сайт загрузки. Однако в последнее время он начал давать ссылку для скачивания файла m3u8. Я искал по всему Интернету и пробовал множество способов, но не могу загрузить эти видео. Кто-нибудь знает, как получить ссылки для скачивания таких видео? Это будет высоко ценится. Большинство этих видеороликов представляют собой лучшие моменты футбольных матчей, которые обычно воспроизводятся в браузере, но не могут быть загружены. ОБНОВЛЕНИЕ: http @ 0000018479631d00] Протокол 'http' не включен в белый список 'file,crypto'! master.m3u8: Неверный аргумент это ошибка, которую я получаю, когда использую FFmpeg.
Как извлечь видео mp4 из файла m3u8
Ответы (2)
m3u8
файлы обычно представляют собой текстовые файлы, содержащие ссылки на фактические файлы данных.
Решение, которое я использую, состоит в том, чтобы загрузить фактические файлы данных с помощью curl
в цикле Bash, а затем объединить все загруженные файлы списка воспроизведения.
Вы можете попробовать функцию Bash, подобную следующей [поместите ее в свой файл .bashrc
или .bash_aliases
и отредактируйте ее соответствующим образом, если вам нужно]:
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
}
Тогда вы можете использовать его так: download-playlist master.m3u8
PS: Обычно master.m3u8
содержит ссылки на плейлисты. Функция, возможно, должна быть запущена в подсписке воспроизведения, а не в фактическом списке воспроизведения master.m3u8
.
Я узнал ответ. Проблема в том, что поток зашифрован, и при использовании FFmpeg я получаю сообщение об ошибке Шифрование SAMPLE-AES еще не поддерживается. Таким образом, если FFmpeg не поддерживает эту функцию, такие видео не могут быть загружены.