在Bash/Linux中,如何创建从FFmpeg输出的完成转换的文本文件?

huangapple go评论89阅读模式
英文:

in bash/linux: How to create the file text for output completed converted from FFmpeg..?

问题

我在Google上找不到关于如何批处理中使用FFmpeg创建输出已完成文本文件的信息。

示例:我找到了1000个旧视频文件(.avi),但我想知道已完成输出的情况,例如ECHO $files > text.txt.. 但我在Google或Stack Overflow上找不到相关信息。

我在.sh文件中使用了批处理命令FIND和FFMPEG。

fortmat4find='.avi'
format4output='mp4'
.....
.....
sh -c "find . -iname $format4find -exec ffmpeg -n -i {} {}-CONVERTED$format4output > text.txt \;"

结果没有将任何内容输出到text.txt文件中,作为已完成转换的标志。

text.txt文件的内容将如下所示:

./folder1/folder2/AAA.avi-CONVERTED.mp4
./folder4/folder5/AAA.avi-CONVERTED.mp4
....
...

我查阅了指南,但没有找到相关信息。

英文:

i don't find in google, how to create file text for output completed from FFmpeg in batch?

example: i find 1000 files old video (.avi) but i want to know what is done completed output example ECHO $files > text.txt.. but i don't find in google or here STACKOVERFLOW..

i use batch in file .sh, there are command FIND, FFMPEG

fortmat4find='.avi'
format4output='mp4'
.....
.....
sh -c "find . -iname $format4find -exec ffmpeg -n -i {} {}-CONVERTED$format4output > text.txt \;";

result nothing output to text.txt as completed converted..

inside of text.txt will be result like this:

./folder1/folder2/AAA.avi-CONVERTED.mp4
./folder4/folder5/AAA.avi-CONVERTED.mp4
....
...

i check in guide.. but nothing find information..

答案1

得分: 1


    #!/bin/bash

    format4find=".mkv"
    format4output=".mp4"

    find . -name "*$format4find" -exec sh -c '
    EXT=$1
    shift 1
    for INP; do
      DUR=$(ffprobe -v error -show_entries format=duration -of default=nw=1:nk=1 "$INP")
      OUT="${INP%.*}-CONVERTED$EXT"
      echo "$DUR $INP $OUT"
      if ffmpeg -n -i "$INP" "$OUT"; then
        echo "$OUT" >> completed.log
      else
        echo "$INP → error" >> error.log
      fi
    done' sh $format4output {} +

英文:

echo

#!/bin/bash

format4find=".mkv"
format4output=".mp4"

find . -name "*$format4find" -exec sh -c '
EXT=$1
shift 1
for INP; do
  DUR=$(ffprobe -v error -show_entries format=duration -of default=nw=1:nk=1 "$INP")
  OUT="${INP%.*}-CONVERTED$EXT"
  echo "$DUR $INP $OUT"
  if ffmpeg -n -i "$INP" "$OUT"; then
    echo "$OUT" >> completed.log
  else
    echo "$INP → error" >> error.log
  fi
done' sh $format4output {} +

huangapple
  • 本文由 发表于 2023年7月18日 05:09:41
  • 转载请务必保留本文链接:https://go.coder-hub.com/76708097.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定