ffmpeg批次mov轉換mp4格式指令碼

ToDarcy發表於2024-08-21

vim convertMP4.sh

輸入指令碼:

#!/bin/bash

# 檢查是否提供了輸入目錄路徑
if [ -z "$1" ]; then
    echo "Usage: $0 <input_directory>"
    exit 1
fi

# 獲取輸入目錄路徑
input_directory="$1"

# 檢查輸入目錄是否存在
if [ ! -d "$input_directory" ]; then
    echo "Error: Directory $input_directory does not exist."
    exit 1
fi

# 遍歷輸入目錄下的所有 .mov 檔案
for file in "$input_directory"/*.mov; do
    # 檢查檔案是否存在
    if [ ! -f "$file" ]; then
        echo "No .mov files found in the directory."
        exit 1
    fi
    
    # 獲取檔名(不包括副檔名)
    filename=$(basename "$file" .mov)
    # 定義輸出檔名
    output_file="$input_directory/${filename}.mp4"
    
    # 執行轉換
    ffmpeg -i "$file" -c:v libx264 -preset slow -crf 22 -c:a aac -b:a 192k "$output_file"
done

echo "Conversion completed."
# 執行轉換(轉為4K壓縮無損)
    ffmpeg -i "$file" -vf "scale=3840:2160" -c:v libx265 -x265-params lossless=1 -c:a aac -b:a 192k "$output_file"

解釋
-vf "scale=3840:2160":此選項將影片解析度調整為 4K(3840x2160)。
-c:v libx265:使用 libx265 編碼器,這種編碼器在處理高解析度影片時更有效,並支援無損模式。
-x265-params lossless=1:設定 libx265 編碼器為無損模式,以儘量保持原始畫質。
-c:a aac -b:a 192k:音訊部分使用 aac 編碼器,位元速率設定為 192 kbps。你可以根據需要調整音訊位元速率,雖然這不會影響影片畫質。

授權:

chmod +x convertMP4.sh

執行指令碼:

./convertMP4.sh /tmp/mov

相關文章