环境准备

  • Linux
  • FFMPEG
  • 宝塔面板

注:宝塔面板只是为了可视化操作比较方便,可有可无

安装宝塔面板

  1. 在宝塔官网https://www.bt.cn/new/index.html 使用自己对应系统的一键脚本进行安装。

    image.png

  2. 也可以使用官方提供的linux下万能一键安装脚本,接着根据提示安装完成。

    if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh 
    https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bec

安装FFMPEG

更新安装包列表apt update
使用apt安装 apt install ffmpeg -y

要验证安装,请使用以下ffmpeg -version命令,该命令显示FFmpeg版本:

image.png


脚本文件编写

  • 新建目录用于存放脚本文件
    mkdir cron && cd cron
  • 新建脚本文件
    vim transf.sh
#!bin/bash
namelist=/www/wwwroot/nas/cron/conf/namelist.conf
m3u8list=/www/wwwroot/nas/cron/conf/m3u8list.conf
reslist=/www/wwwroot/nas/cron/conf/reslist.conf
flag=/www/wwwroot/nas/cron/conf/flag.conf
maindir=/www/wwwroot/nas
if [ -e "${flag}" ];then
echo -e "[$(date "+%Y-%m-%d %H:%M:%S %u %Z")] exit"
exit
fi
echo "" > ${namelist}
echo "" > ${m3u8list}
# echo "" > ${reslist}
echo -e "[$(date "+%Y-%m-%d %H:%M:%S %u %Z")]"
find ${maindir} -type f |grep -F ".mp4" > ${namelist}
touch ${flag}
find ${maindir} -type f |grep -F ".m3u8" > ${m3u8list}
mp4num=`cat ${namelist}|wc -l`
for ((i=1;i<=${mp4num};i++))
do

    mp4tmpname=`cat ${namelist} |sed -n ${i}p |awk -F ".mp4" '{print $1}'`
    mp4name=`echo ${mp4tmpname} |sed -e 's|&|-|g' |sed -e 's| |-|g' | sed -e "s|'| i|g"`
    temp_local=`echo ${mp4tmpname} |awk -F "/" '{print $(NF-1)}'`
    end_name=`echo ${mp4name} |awk -F "/" '{print $NF}'`
    temp_num=`cat ${m3u8list} |grep -F "${mp4name}" |wc -l`
    temp_num1=`cat ${m3u8list} |grep -F "${mp4tmpname}" |wc -l`
    if [ ${temp_num1} == 0 -a ${temp_num} == 0 ];then 
   
    echo -e "[$(date "+%Y-%m-%d %H:%M:%S %u %Z")] ${mp4tmpname}.mp4 >> ${mp4name}.mp4" >> ${reslist}
    mv "${mp4tmpname}.mp4" "${mp4name}.mp4"
    ffmpeg -i "${mp4name}.mp4" -c:v libx264 -hls_time 10 -hls_list_size 0 -c:a aac -strict -2 -f hls "${mp4name}.m3u8"
    fi
done

chown -R www:www ${maindir}
rm -rf ${flag}
  • 创建子文件夹存放相关日志文件
    mkdir conf

配置定时任务

  • 使用宝塔面板

    image.png

    image.png

脚本内容:

bash /www/wwwroot/nas/cron/transfer.sh &>> /www/wwwroot/nas/cron/conf/log

  • 使用crontab创建定时任务
    终端输入 $ crontab -e
    选择vim编辑器
    */2 * * * * bash /www/wwwroot/nas/cron/transfer.sh &>> /www/wwwroot/nas/cron/conf/log

至此整个脚本自动化流程创建完毕

最后修改:2023 年 06 月 13 日
如果觉得我的文章对你有用,请随意赞赏