num=$(expr $(ls video-*.mp4 | wc -l) + 1)
dir=video-$(expr $(ls -d video-* | wc -l) + 1)
mkdir $dir
cd $dir
m3u8_url=$1
total=`curl $m3u8_url | grep -v '#EXT' | wc -l`
echo total $total segment
if [[ $total -eq 0 ]]
then exit 1
fi
for i in `seq $total`
do
url=${m3u8_url/'index-'/'seg-'$i-}
url=${url/m3u8/ts}
curl $url >> ${i}.ts &
echo file ${i}.ts >> video.txt
done
wait
ffmpeg -f concat -i video.txt -c copy video.mp4
if [[ -f video.mp4 ]]
then
mv video.mp4 ../video-$num.mp4
cd ..
rm -rf $dir
fi
用法
sh download.sh 地址
地址如下获取,为最终m3u8地址(响应内容为视频ts段)