追风赶月莫停留,平芜尽处是春山。这篇文章主要讲述自动将输出文件与输入文件匹配(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个编码选项: )。
提前致谢!!
答案【自动将输出文件与输入文件匹配(Applescript x FFMPEG)】如果不作为参数给出,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命令中进行设置。
推荐阅读
- 如何在java中使用ffmpeg-cli-wrapper使用ffmpeg下载m3u8文件()
- 如何在Android中使用FFMPEG库将Youtube视频与MP4合并()
- QGuiApplication没有显示使用QPainter和QPdfWriter
- Android应用自定义字体在手机上完全被忽略
- 如何在Android Studio上添加字体文件夹()
- Android支持哪些字体文件类型()
- 如何在WinForms中使用C#在Windows的任务栏中检索(列出)所有打开的应用程序的标题和进程ID
- 如何使用AWS Lambda创建快照
- 如何使用插件有效地工作