Странная какая-то штука при использовании ffmpeg в цикле. Хочу вшить внешние аудио дорожки в видео. Названия одинаковые, отличается только одна буква в расширении. Содержание директории такое:
./NAME-S01E10.mkv
./NAME-S01E12.mka
./NAME-S01E20.mkv
./NAME-S01E13.mkv
./NAME-S01E01.mkv
./NAME-S01E17.mkv
./NAME-S01E05.mka
./NAME-S01E13.mka
./NAME-S01E10.mka
./NAME-S01E24.mkv
./NAME-S01E08.mka
Каждому видеофайлу mkv соответсвует аудиофайл mka. Если вшивать вручную по одному
ffmpeg -i NAME-...mkv -i NAME-...mka -map 0 -map 1 -c copy NAME-...-RUS.mkv
Все работает без проблем. Но если зациклить процесс
find -mindepth 1 -maxdepth 1 -type f -name 'NAME-*mkv' | while read vid; do vid=${vid#\.\/}; aud=${vid/mkv/mka}; ffmpeg -i $vid -i $aud -map 0 -map 1 -c copy ${vid/\.mkv/-RUS.mkv}; done
то добавление происходит раз в 5 быстрее, но добавляется только около минуты внешней аудио дорожки, а ffmpeg сыпет ошибками
Unrecognized option 'NAME-...-RUS.mkv'.
Parse error, at least 3 arguments were expected, only 1 given in string '-S01E20.mkv'
Если выводить через echo то получаю нормальные рабочие команды
ffmpeg -i NAME-S01E10.mkv -i NAME-S01E10.mka -map 0 -map 1 -c copy NAME-S01E10-RUS.mkv
ffmpeg -i NAME-S01E20.mkv -i NAME-S01E20.mka -map 0 -map 1 -c copy NAME-S01E20-RUS.mkv
ffmpeg -i NAME-S01E13.mkv -i NAME-S01E13.mka -map 0 -map 1 -c copy NAME-S01E13-RUS.mkv
ffmpeg -i NAME-S01E01.mkv -i NAME-S01E01.mka -map 0 -map 1 -c copy NAME-S01E01-RUS.mkv
ffmpeg -i NAME-S01E17.mkv -i NAME-S01E17.mka -map 0 -map 1 -c copy NAME-S01E17-RUS.mkv
ffmpeg -i NAME-S01E24.mkv -i NAME-S01E24.mka -map 0 -map 1 -c copy NAME-S01E24-RUS.mkv
ffmpeg -i NAME-S01E18.mkv -i NAME-S01E18.mka -map 0 -map 1 -c copy NAME-S01E18-RUS.mkv
ffmpeg -i NAME-S01E14.mkv -i NAME-S01E14.mka -map 0 -map 1 -c copy NAME-S01E14-RUS.mkv
Все файлы нормальные, не битые. Через ls *mkv | while read ...
такая же байда. В чем подвох?