自动将输出文件与输入文件匹配(Applescript x FFMPEG)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动将输出文件与输入文件匹配(Applescript x FFMPEG)相关的知识,希望对你有一定的参考价值。
我使用以下AppleScript作为Automator服务来右键单击finder中的视频文件,并使用ffmpeg终端命令刻录匹配的字幕文件(.ass)。在这种情况下,ffmpeg编码一个新的Prores 422(HQ)文件。
on run {input, parameters}
tell application "Terminal"
activate
set filesString to ""
repeat with file_ in input
set filesString to filesString & " " & quoted form of (POSIX path of file_)
end repeat
do script "for f in" & filesString & "; do
base=$f
ffmpeg -y -i "$base" -c:v prores -profile:v 3 -pix_fmt yuv422p10le -vf "ass=${base%.*}.ass" -c:a copy "${base%.*}_sub.mov";
done"
end tell
return input
end run
是否可以将输出文件及其编解码器自动匹配到输入文件? 由于混合的windows / mac环境(Prores(mov),dnxhr(mxf / mov)),我们使用了许多不同的输入格式,我希望在工作站的finder服务菜单中没有8-12个编码选项: )。
提前致谢!!
答案
如果不作为参数给出,ffmpeg将从文件结尾中选择编解码器本身。在大多数情况下这很好。只需将相同的扩展名从输入文件设置为输出文件即可。
如果您需要更多粒度,可以使用ffprobe
。它是来自ffmpeg的工具,可以读取视频文件的所有属性。
可以在这里找到一个很好的解释:https://trac.ffmpeg.org/wiki/FFprobeTips
例如,第一个流的编解码器(这是大多数视频文件中的视频流)可以通过以下方式读取:
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 input.mp4
您可以将值保存在变量中,并在ffmpeg命令中进行设置。
以上是关于自动将输出文件与输入文件匹配(Applescript x FFMPEG)的主要内容,如果未能解决你的问题,请参考以下文章