我自己常用的ffmpeg批处理
720x1080批量转1920x1080(两边黑屏)
手机直播的时候录播机录出来的分辨率是720x1080,使用ffmpeg转成横屏的1920x1080。这样xml转ass弹幕的时候,就不需要另外处理了,看起来很更舒服。
input_folder="" # 要转化的录播的文件夹路径
output_folder="" # 要输出的文件夹路径
# Create the output folder if it does not exist
mkdir -p "$output_folder"
for f in "$input_folder"/*.flv; do
ffmpeg -i "$f" -vf "scale=720:1080,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" -c:a copy "$output_folder/$(basename "${f%.*}.mp4")"
done
效果
弹幕压制
windows版(使用cuda)
@echo off
set input_folder=YourInputFolderPath
set output_folder=YourOutputFolderPath
for %%a in ("%input_folder%\*.flv") do (
ffmpeg -hwaccel cuda -c:v h264_cuvid -i "%%a" -vf subtitles="%%~na.ass" -c:v h264_nvenc -b:v 6000k -c:a copy "%output_folder%\%%~na_压制.mp4" -y
)
macOS版
#!/bin/bash
input_folder="/path/to/input" # Replace with your input folder path
output_folder="/path/to/output" # Replace with your output folder path
mkdir -p "$output_folder" # Create the output folder if it doesn't exist
for f in "$input_folder"/*.mp4; do
subtitle_file="${f%.*}.ass" # Assumes subtitle file name is same as video file name but with .ass extension
output_file="$output_folder/$(basename "${f%.*}_压制.mp4")" # Output file name with _ass suffix
ffmpeg -i "$f" -vf "ass=$subtitle_file" "$output_file"
done