Я не знаю, правильно ли я спрашиваю это, но здесь идет. Я получил DVD-коробку на день рождения и транскодировал файлы для хранения на компьютере для просмотра. После выгрузки сырых файлов на мой компьютер я сжал их с помощью следующей пакетной команды;

INPUT="$1"
for i in *.mp4 ; do
ffmpeg -i "$i" -vcodec h264 -acodec libfaac "$i.ts"
mv "$i.ts" "$i.mp4"
sleep 3
done

Это привело к отличному сжатию и качеству, но когда я смотрю на папку, файлы расположены на значках, это просто серые прямоугольники, когда исходные файлы в той же папке имели изображение отображаемого видео. (Lol, я знаю, это просто косметика, но это меня беспокоит :)

Если я использую команду;

ffmpeg -i input.mp4 -vcodec h264 -acodec libfaac output.mp4

Он отображает значок изображения хорошо, но кодирует как (AVC1) вместо (h264), что не то, что я хочу.

Есть ли способ, которым я могу обратиться к этому в моей команде пакетного файла, чтобы заставить его отображать значок файла по желанию? Спасибо!

1 ответ1

1

Благодаря информации, предоставленной Гайаном, я смог найти эффективное решение вопроса, который я задал для изменения команды командного файла, а именно:

INPUT="$1"
for i in *.mp4 ; do
ffmpeg -i "$i" -vcodec h264 -acodec libfaac "$i.ts"
ffmpeg -i "$i.ts" -bsf:a aac_adtstoasc -c copy "$i.mp4"
rm *.ts
sleep 3
done

Однако, учитывая информацию, предоставленную Gyan, мы можем пропустить этап кодирования в файл потока передачи, а затем выполнить ремукс до mp4 и просто сжать файл mp4 в следующей пакетной команде.

INPUT="$1"
for i in *.mp4 ; do
ffmpeg -i "$i" -vcodec h264 -acodec libfaac "$i.mp4"
sleep 3
done

Помните, что это было сделано с использованием более старой версии ffmpeg. Для более новых версий ffmpeg используйте следующее для сжатия вашего видео, сохраняя правильный значок изображения видео, которое вы сжимаете;

INPUT="$1"
for i in *.mp4 ; do
ffmpeg -i "$i" -vcodec h264 -acodec aac "$i.mp4"
sleep 3
done

Единственная проблема при использовании команды batch file - это добавление дополнительного расширения файла к имени файла (filename.mp4.mp4), к которому я обращаюсь, используя pyrenamer, чтобы удалить дополнительное расширение файла во всех файлах в нескольких каталогах одним щелчком мыши.

Если кто-то знает, как решить эту проблему внутри пакетной команды, прокомментируйте, и я изменю этот ответ. Я пробовал варианты команды 'mv', но не повезло.

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