LINUX.ORG.RU

bash особенности цикла find

 


0

1

Не пойму почему прекращает работать цикл - после первой отработки ffmpeg работа прекращается без каких либо ошибок. Если вызов ffmpeg убрать, то выводятся все найденные файлы

find . -type f -iname '*.mp4' -o -iname '*.mov' -o -iname '*.mts' | while read f; do
    nf="${f%.*}.mkv"
    echo "$f"
    ffmpeg -i "$f" -preset medium "$nf" 
done

★★★★★

Таких тем уже куча была. Вроде, на этом все решаются:

ffmpeg ... < /dev/null
Или ещё можно -nostdin попробовать передать.

xaizek ★★★★★ ()
Ответ на: комментарий от xaizek

хм, да, не использовал ранее ffmpeg в таком варианте, а если просто было «for *mts», то все работало

а за счет чего так ломается цикл ?

x905 ★★★★★ ()
Ответ на: комментарий от x905

while read f

и

ffmpeg -i «$f» -preset medium «$nf»

Используют один и тот же stdin и ffmpeg его видимо полностью вычитывает, так что второй итерации ничего не остаётся.

xaizek ★★★★★ ()
Ответ на: комментарий от x905

Он не входной файл там пытается читать, а интерактивные команды какие-то.

xaizek ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.