94 字
1 分钟
linux之flv转mp4
前言
为了让我的录播机能在线播放,所以找了个脚本,这个脚本是群里面一位大佬发出来的,非常感谢这位大佬的脚本。
准备
提前安装好ffmpeg
使用
sudo ./脚本 "文件夹路径/*.flv"脚本
#!/bin/bash
# 用法:# ./convert.sh "/path/to/*.flv"## 可选通过环境变量传入 FFMPEG 路径:# FFMPEG="/path/to/ffmpeg" ./convert.sh "/path/to/*.flv"
# 颜色RED='\033[0;31m'YELLOW='\033[1;33m'GREEN='\033[0;32m'NC='\033[0m'
# 检查传入的参数# 如果传入参数小于 1 个if [ $# -lt 1 ]; then echo -e "${RED}Missing argument!${NC}" echo "Usage example:" echo " ./convert.sh \"/path/to/*.flv\"" exitelif [ $# -gt 1 ]; then echo -e "${RED}Too much argument!${NC}" echo -e "${YELLOW}Note${NC}: Did you forget quotes?" echo "Usage example:" echo " ./convert.sh \"/path/to/*.flv\"" exitfi
# 匹配的文件名SOURCE_PATTERN="$1"
# 检查 FFMPEG 名字或路径if [ -z "${FFMPEG}" ]; then # 如果没有传入则设置默认为 ffmpeg FFMPEG=ffmpegelse echo -e "${YELLOW}[NOTE] Using custom ffmpeg path: \"${FFMPEG}\"${NC}" echo ""fi
# 在匹配到的每个文件里循环,文件名为 sourcefor source in $SOURCE_PATTERN; do # 设置 target 为 source 去掉后缀名再加上 ".mp4" target="${source%.*}.mp4" # 如果 source 是一个存在的文件 if [ -f "$source" ]; then # 如果 target 存在 if [ -e "$target" ]; then # 输出文件已存在提示 echo -e "${YELLOW}[SKIP]${NC} MP4 exist: $target" else # 否则输出运行的提示 echo -e "${GREEN}[RUN ]${NC} convert \"$source\" to \"$target\"" # 运行 FFMPEG $FFMPEG -hide_banner -nostats -loglevel warning -i "$source" -c copy "$target" fi fidone如果出现“解释器错误:没有那个文件或目录”尝试运行以下命令
sed -i.bak 's/\r$//g' zhuanma.sh 分享
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时
相关文章 智能推荐
