我自己常用的ffmpeg批处理

文章介绍了如何使用ffmpeg进行720p视频文件批量转换为1920x1080格式,同时处理Windows和Mac版本下的弹幕压制,涉及硬件加速(如cuda)和ASS字幕处理。
摘要由CSDN通过智能技术生成

我自己常用的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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值