递归列出目录中所有文件的视频持续时间

时间:2014-08-20 11:33:13

标签: bash shell video ffmpeg

我想列出文件夹中每个视频的所有文件名和持续时间。目前我只能单独定位文件:

ffmpeg -i intro_vid001.mp4 2>& 1 | grep持续时间

有人可以建议我如何在终端或文件夹中为文件夹中的每个视频文件打印出来吗?

我尝试过使用shell脚本,但对于shell脚本来说却是一个新手。

if [ -z $1 ];then echo Give target directory; exit 0;fi

find "$1" -depth -name ‘*’ | while read file ; do
directory=$(dirname "$file")
oldfilename=$(basename "$file")


echo oldfilename
#ffmpeg -i $directory/$oldfilename” -ab 320k “$directory/$newfilename.mp3″ </dev/null
ffmpeg -i "$directory/$oldfilename" 2>&1 | grep Duration | echo
#rm “$directory/$oldfilename”

done

1 个答案:

答案 0 :(得分:1)

  1. 我在一个'oldfilename'
  2. 面前忘记了一美元
  3. grep在其标准输出上写入,你不能使用不使用其标准输入的echo来管道。
  4. 我建议使用以下脚本:

    find "$1" -type f | while read videoPath ; do
        videoFile=$(basename "$videoPath")
        duration=$(ffmpeg -i "$videoPath" 2>&1 | grep Duration)
    
        echo "$videoFile: $duration"
    done