【跨域】【m3u8】mp4视频批量转m3u8,对象存储跨域问题处理

1、视频批量转m3u8

推荐使用:ffmpeg

mac 可以用 brew install ffmpeg 命令

win自行搜索 “ffmpeg安装”

安装完后,可以写一个shell脚本,批量执行,可以参照我的

#!/bin/bash
echo "Hello World !"
for file in ./basevideo/*
do
if [ -f "$file" ]
    then
        echo "$file is file"
        tmp=${file##*/}
        mkdir ./output/${tmp%.*}
        cd ./output/${tmp%.*}
        echo $tmp
            ffmpeg -y -i ../../basevideo/$tmp -vcodec copy -acodec copy -vbsf h264_mp4toannexb input.ts
            ffmpeg -i input.ts -c copy -map 0 -f segment -segment_list input.m3u8 -segment_time 4 input-%03d.ts
            rm input.ts
        cd ../..
fi
done

文件结构如下

basevideo:原视频mp4文件

output:生成后m3u8文件

test.sh 上面的脚本

上传腾讯/阿里对象存储,可以使用他们的本地客户端,把basevieo文件夹拖拽过去

2、cors跨域处理

已腾讯云的对象存储(cos)+腾讯云的cdn为例。

第一步:在cos中,配置跨域访问。

origin:页面的域名

methods:一般都是get,只勾get即可

max-age:生成后如果不频繁变动,推荐时间长一些,120s这样

配置完后,在页面上访问对象存储地址试试,看是否配置正确。

第二步:在cdn配置跨域

配置cdn allow-origin。配置方法,可借鉴官方文档:https://cloud.tencent.com/document/product/228/60739

这两步之后,再重新上传新的视频地址,防止有cdn缓存。一般就可以正常访问了。

cors跨域的请求过程可以看https://developer.mozilla.org/zh-CN/docs/Web/HTTP/CORS 讲的比较清楚了。

因为cors跨域,是通过判断head偷是否油origin。所以不会影响正常的css、img、js等静态文件,所以不用考虑影响线上其他业务的问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值