- 积分
- 105
- 金钱
- 100
- 威望
- 0
- 贡献
- 0
- HASS币
- 0
注册会员
- 积分
- 105
- 金钱
- 100
- HASS币
- 0
|
发表于 2024-7-4 23:09:37
|
显示全部楼层
简单做了一个修改,让保存的视频文件按照年/月的形式存储,这样方便查找
#! /bin/bash
##### setting section######
path="/media/xiaomi_video/"
video_limit=500
temp_path="/config/xiaomi_video_temp/"
#####################
current_file_size=`ls $path|wc -l`
video_url=$1
raw_file_name=`echo $2|sed 's/[^0-9]//g'`
path=$path${raw_file_name:0:4}"/"${raw_file_name:4:2}"/"
file_name=$path$raw_file_name".mp4"
if [ ! -d $temp_path ];then
mkdir $temp_path
fi
if [ ! -d $path ];then
mkdir -p $path
fi
## remove oldest video if file_size > video_limit
if [ $current_file_size -ge $video_limit ]; then
ls $path -tr|head -n $(($current_file_size-$video_limit+1))|sed "s/^/${path//\//\\\/}/g"|xargs rm
fi
curl $video_url > $temp_path"m3u8"
ts_position_list=(`grep -n "#EXTINF" $temp_path"m3u8" |cut -d ":" -f1`)
head_end_position=`expr ${ts_position_list[0]} - 1`
tail_postion=`cat $temp_path"m3u8"|wc -l`
for((i=0;i<${#ts_position_list[@]};i++));do
start=${ts_position_list[i]}
if [ `expr $i + 1` -eq ${#ts_position_list[@]} ] ; then
end=`expr $tail_postion - 1`
else
end=`expr ${ts_position_list[i+1]} - 1`
fi
sed -n "1,${head_end_position}p" $temp_path"m3u8" >> $temp_path$i".m3u8"
sed -n "${start},${end}p" $temp_path"m3u8" >> $temp_path$i".m3u8"
echo "#EXT-X-ENDLIST" >> $temp_path$i".m3u8"
ffmpeg -protocol_whitelist 'file,crypto,data,https,tls,tcp' -i $temp_path$i".m3u8" $temp_path$i".mp4"
echo file \'$temp_path$i".mp4"\' >> $temp_path"list"
done
ffmpeg -f concat -safe 0 -i $temp_path"list" -c copy $file_name
rm "$temp_path"*"" |
|