1

По сути, пакетное приложение следующей команды:

ffmpeg -i "01.mkv" -map 0:a? -map 0:s? -map 0:v -c:v copy -c:a ac3 -c:s copy "test.mkv"

Я надеюсь, что просто запустите это в каталоге и получите все вновь исправленные файлы со старыми именами файлов и старыми файлами с добавлением "old_" или чего-то подобного. Я почти ничего не знаю о bash, но имею некоторый опыт работы с c++ и java, так что терминология не проблема, я просто никогда раньше не смотрел на bash. Спасибо!

РЕДАКТИРОВАТЬ: Для ясности я хотел бы, чтобы новый файл был "01.mkv" и старый файл был переименован в "old_01.mkv". Мои исследования показали, что это, вероятно, потребует пристального внимания, но я знаю об этом даже меньше, чем Баш.

РЕДАКТИРОВАТЬ 2: Я понимаю, что я должен был предоставить то, что я смог собрать до сих пор самостоятельно.

#!/bin/bash
    for i in $( ls ); do
        ffmpeg -i $i -map 0:a? -map 0:s? -map 0:v -c:v copy -c:a ac3 -c:s copy $i
    done

1 ответ1

4

Хорошо, после того, как возиться с этим в течение нескольких часов после получения удачного результата поиска в Google, которого я раньше не видел, я наконец понял это. Это ответ на тот случай, если кто-нибудь еще придет и должен сделать что-то подобное.

#!/bin/bash
for file in *.mkv;
    do
        oldFile=old_"$file"
        mv "$file" "$oldFile"
        ffmpeg -i "$oldFile" -map 0:a? -map 0:s? -map 0:v -c:v copy -c:a ac3 -c:s copy "$file"
    done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .