视频文件hls切片文件下载

有天研发找我回归一个客户报障情况。。。。。。。。。。。。

需要拿客户的源文件做测试:研发给的是:http://此处是客户域名不展示了/record/live/05147Y2GJK0/hls/05147Y2GJK0-05147Y2GJK0-20201117150440.m3u8

我要把每个ts片下载下来,片有很多,总不能手工拼接下载吧?关键我还要吧这些个东西上传到我的测试账号的存储空间(云厂商都是客户区分存储空间的)?

我的办法:

1、脚本从05147Y2GJK0-05147Y2GJK0-20201117150440.m3u8中获取每个片,拼接ts片的下载地址

2、写shell把当前目录的文件上传到测试账户的空间

后来实际操作,一个python几行就搞定了:

wget下载m3u8文件

脚本搞定

开始我脚本只是拼接,cmd是wget下载ts片到本地了,写了shell上传

files=`ls`  //获取当前目录的所有文件
#echo  ${files}
IParr=(${files//,/ })   //放入数组
for var in ${IParr[@]}   //循环操作ts文件上传
do
   echo $var
   ./ks3_upload_tool $var  /qa-screenshot/offline_source_file/kehu_m3u8/$var  qa-screenshot  //这个是我们的上传命令行工具
done

纯纯的shell解决下

#/bin/bash
# 举例子sh down_m3u8.sh m3u8地址 qa-vod hanfang1/test111/

if [ -n '$1' ];then
    echo "需要下载的链接:$1"
    wget $1
    if test $? -ne 0;then
        echo "文件下载失败"
        exit 1
    fi
    file_title=${1%/*}'/'
    file_name=`echo $1 |awk -F / '{print $NF}'|awk -F ? '{print $1}'`

    awk -va=$file_title '$1 ~ /.ts/ {for(i=1;i<=NF;i++) temp=a$i;system("wget "temp"")}' $file_name
    for file in `ls *.ts`
    do
        ./ks3_upload_tool $file $3$file $2  #ks3_upload_tool上传的工具(自研的)
        rm -rf $file
    done
    ./ks3_upload_tool $file_name $3$file_name $2
    if test $? -ne 0;then
        echo "文件下传失败$file_name"
        exit 1
    fi
    rm -rf $file_name
    echo "操作完毕"
   
fi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值