Просмотр исходного кода

Merge branch 'master' of git.tianyunperfect.cn:tianyunperfect/sync

tianyun 4 месяцев назад
Родитель
Сommit
c13bff4f4d
1 измененных файлов с 87 добавлено и 0 удалено
  1. 87 0
      sh_config.sh

+ 87 - 0
sh_config.sh

@@ -621,3 +621,90 @@ function my_mounted_dir_size() {
 set_title() {
 	printf "\033]2;%s\007" "$1"
 }
+
+
+## ffmpeg 相关
+# 提起音频,入参是文件名,默认转出同名的mp3,示例:ffmpeg -i input.mp4 -vn -acodec libmp3lame -q:a 0 output.mp3
+function ffmpeg_extract_audio() {
+	if [ -z "$1" ]; then
+		echo "Usage: ffmpeg_extract_audio <input_file>"
+		return 1
+	fi
+
+	# 获取文件名
+	filename=$(basename "$1")
+	# 获取文件扩展名
+	extension="${filename##*.}"
+	# 获取文件名(不包含扩展名)
+	filename_without_extension="${filename%.*}"
+
+	# 默认输出文件名
+	output_file="${filename_without_extension}.mp3"
+
+	# 提取音频 ffmpeg -i input.mp4 -vn -acodec libmp3lame -q:a 0 output.mp3
+	ffmpeg -i "$1" -vn -acodec libmp3lame -q:a 0 "$output_file"
+}
+# 合并视频和音频
+ffmpeg_merge_video_audio() {
+    # 检查参数数量是否正确
+    if [ "$#" -ne 3 ]; then
+        echo "用法: merge_video_audio <视频文件> <音频文件> <输出文件>"
+        return 1
+    fi
+
+    # 获取参数
+    video_path="$1"
+    audio_path="$2"
+    output_path="$3"
+
+    # 检查输入文件是否存在
+    if [ ! -f "$video_path" ]; then
+        echo "错误: 视频文件 '$video_path' 不存在"
+        return 1
+    fi
+
+    if [ ! -f "$audio_path" ]; then
+        echo "错误: 音频文件 '$audio_path' 不存在"
+        return 1
+    fi
+
+    # 执行 FFmpeg 命令
+    ffmpeg -i "$video_path" -i "$audio_path" -c:v copy -c:a copy "$output_path"
+
+    # 检查命令是否成功执行
+    if [ $? -eq 0 ]; then
+        echo "合并完成: 输出文件为 '$output_path'"
+    else
+        echo "错误: 合并失败"
+        return 1
+    fi
+}
+
+ffmpeg_convert_to_mp3() {
+    # 检查参数数量是否正确
+    if [ "$#" -ne 2 ]; then
+        echo "用法: convert_to_mp3 <输入音频文件> <输出MP3文件>"
+        return 1
+    fi
+
+    # 获取参数
+    input_file="$1"
+    output_file="$2"
+
+    # 检查输入文件是否存在
+    if [ ! -f "$input_file" ]; then
+        echo "错误: 输入文件 '$input_file' 不存在"
+        return 1
+    fi
+
+    # 执行 FFmpeg 命令
+    ffmpeg -i "$input_file" -vn -acodec libmp3lame -q:a 2 "$output_file"
+
+    # 检查命令是否成功执行
+    if [ $? -eq 0 ]; then
+        echo "转换完成: 输出文件为 '$output_file'"
+    else
+        echo "错误: 转换失败"
+        return 1
+    fi
+}