0

ホーム ビデオ用の .tbn ファイルを生成するスクリプトを作成しています。スクリプトを実行すると、他のすべてのファイルのみが処理されるようです。

#!/bin/bash

find ~/Movies/Home\ Movies/Canada\ Trip -type f | egrep '\.mp4$|\.avi$|\.mkv$' | while read file ; do

    if [ ! -f "${file:0:${#file}-3}tbn" ]; then
        # .tbn not found
        echo "$file"
        ffmpeg  -itsoffset -13  -i "$file" -vcodec mjpeg -vframes 1 -s 400x224 -an -f rawvideo "${file:0:${#file}-3}tbn"
    fi

done

そして、ここに私のデータセットがあります:

Canada.Trip.S01E01.avi
Canada.Trip.S01E02.avi
Canada.Trip.S01E03.avi
Canada.Trip.S01E04.avi
Canada.Trip.S01E05.avi
Canada.Trip.S01E06.avi
Canada.Trip.S01E07.avi
Canada.Trip.S01E08.avi
Canada.Trip.S01E09.avi
Canada.Trip.S01E10.avi
Canada.Trip.S01E11.avi
Canada.Trip.S01E12.avi
Canada.Trip.S01E13.avi
Canada.Trip.S01E14.mp4
Canada.Trip.S01E15.mp4
Canada.Trip.S01E16.mp4
Canada.Trip.S01E17.mp4
Canada.Trip.S01E18.avi
Canada.Trip.S01E19.mkv
Canada.Trip.S01E20.mp4

したがって、初めて実行すると、1、3、5、7 などの tbn が生成されます。偶数番号のファイルは失敗しますvies/Canada Trip/Canada.Trip.S01E16.mp4: No such file or directory (ファイル名の先頭が切り捨てられていることに注意してください)。

スクリプトを再度実行すると、偶数番号のファイル .tbn ファイルが生成されます。これまで Bash を使用したことがないので、状況全体が混乱しています。

4

1 に答える 1

1

ffmpeg はstdin を読み取ります。また、常に使用する必要がありますread -r

于 2012-06-20T16:11:43.487 に答える