【发布时间】:2013-02-14 19:43:10
【问题描述】:
我有一个非常简单的 shell 脚本,在完成前两项工作后,它只是停下来坐在那里,什么都不做,第三项工作似乎无关紧要,如果我切换顺序等,它不会完成它。
任何想法都会很棒......
这是我的 shell 脚本
for f in "$@"
do
name=$(basename "$f")
dir=$(dirname "$f")
/opt/local/bin/ffmpeg -i "$f" -y -b 250k -deinterlace -vcodec vp8 -acodec libvorbis -nostdin "$dir/webm/${name%.*}.webm"
/opt/local/bin/ffmpeg -i "$f" -y -b 250k -strict experimental -deinterlace -vcodec h264 -acodec aac -nostdin "$dir/mp4/${name%.*}.mp4"
/opt/local/bin/ffmpeg -i "$f" -y -ss 00:00:15.000 -deinterlace -vcodec mjpeg -vframes 1 -an -f rawvideo -s 720x480 "$dir/img/${name%.*}.jpg"
done
【问题讨论】:
-
$@中的空格或奇怪字符?发布文件名列表... -
...或者,ffmpeg 产生了大量的进程;也许您需要使用
ffmpeg ... && ffmpeg ... && ffmpeg ...。最后,与调试 shell 脚本时一样,将 shebang 转到#!/bin/bash -x以启用调试并查看输出。只是我的 0.1 欧元... -
shell script ffmpeg stops after 2 jobs 的完全相同的副本。请不要在堆栈网络之间交叉发布。
-
@LordNeckbeard - 字!