问题解决了,我自问自答一下吧。。虽然有挖坟的嫌疑,但是还是发出来,希望能对别人有帮助。
至于为什么不用别的软件,因为楼主是osx系统的,能用的批量转码工具就比较少。另外楼上付费帮做的着实没必要吧,这么简单的东西。
下面这个批量转码的文件仅仅是支持linux和mac osx系统的,win系统不支持。作用就是批量把一个目录里的mkv全都转码成外挂字母的mp4。想使用的话把虚线里的代码复制到空文件里运行就好了。
---------------------------以下是源文件-----------------------------
#!/bin/sh
echo 批量转码工具
filepath=$(cd "$(dirname "$0")"; pwd)
cd "$filepath"
echo 转码视频路径:`pwd`
echo ---------------------------------------
for file_a in "$filepath"/*
do
if [ "${file_a##*.}" = "mkv" ]; then
echo ${file_a}
fi
done
echo ---------------------------------------
echo Press any key to continue...
read
for file_a in "$filepath"/*
do
if [ "${file_a##*.}" = "mkv" ]; then
in_filename=`basename "$file_a"`
out_filename=`basename "$file_a" .mkv`
echo 开始执行:
echo ${in_filename}
echo 输出文件名:
echo ${out_filename}
ffmpeg -i "$in_filename" -pix_fmt yuv420p -vf "subtitles='$in_filename'" "$out_filename.mp4"
fi
done
echo By Bread_10:淦 折腾了一下午和一晚上
echo 可以直接转换成支持QuickTime播放的H.264编码
---------------------------------------------------------------
另外windows没有去研究。如果有类似需求的话,虽然没有批量,但是可以一件一件地用命令行转码。用下面这个命令就可以:
ffmpeg -i 【in_filename】 -pix_fmt yuv420p -vf subtitles=【in_filename】 【out_filename.mp4】
【in_filename】里填的文件名,【out_filename.mp4】里自己自定义就好了。
默认是转换成H.264 high profile编码的。