【问题标题】:shell script ffmpeg stops after 2 jobsshell脚本ffmpeg在2个作业后停止
【发布时间】: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 - 字!

标签: shell ffmpeg


【解决方案1】:

您最后的ffmpeg 行需要-nostdin

Running FFMPEG from Shell Script /bin/sh

【讨论】:

  • 我也开始记录它以查看问题所在,但似乎它起作用了,我还必须在我的 -i 之前放置 -nostdin 否则它在最终命令上给我一个错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-26
  • 2021-10-26
相关资源
最近更新 更多