Здравствуйте.
У меня такой вопрос, можно ли как-нибудь по-простому (например через какой-нибудь скрипт) удалить лишнее звуковые дорожки у видеофайла?
Как 1 видеофайл обработать я знаю (через avidemuxe), а когда файлов очень много (больше 50-ти), то это не удобно и утомительно
Можно как-нибудь другим способом это сделать?
Быть может в avidemuxe это можно как-нибудь автоматизировать (чтоб он сам прошелся по папке и убрал лишнюю звуковую дорогу)?
Удаление лишней звуковой дорожки
Модератор: Модераторы разделов
-
kreator
- Сообщения: 384
- ОС: LFS
Re: Удаление лишней звуковой дорожки
Есть несколько вариантов:
1. avidemux сохраняет проект как javascript, что дает большие возможности для подобных манипуляций.
2. Можно использовать консольный avidemux (avidemux2_cli) + простой шелл скрипт.
3. Если mkv подходит в качестве выходного формата, то можно (даже нужно) вместо avidemux2_cli использовать mkvmerge (из mkvtoolnix) + скрипт.
Недавно использовал третий вариант (мне наоборот нужно было добавить звуковую дорожку и титры). Тактика следующая - запускаем mmg, открываем первый файл меняем всё что нужно и
копируем получившуюся команду (либо man mkvmerge).
Далее пишем скрипт (пушу для zsh, непомню как в bash):
1. avidemux сохраняет проект как javascript, что дает большие возможности для подобных манипуляций.
2. Можно использовать консольный avidemux (avidemux2_cli) + простой шелл скрипт.
3. Если mkv подходит в качестве выходного формата, то можно (даже нужно) вместо avidemux2_cli использовать mkvmerge (из mkvtoolnix) + скрипт.
Недавно использовал третий вариант (мне наоборот нужно было добавить звуковую дорожку и титры). Тактика следующая - запускаем mmg, открываем первый файл меняем всё что нужно и
копируем получившуюся команду (либо man mkvmerge).
Далее пишем скрипт (пушу для zsh, непомню как в bash):
Код: Выделить всё
#!/usr/bin/zsh
foreach f (*.avi) {
mkvmerge -o $f:r.mkv -a 1 -d 0 -S $f --track-order 0:0,0:1
}-
mixaiii
- Сообщения: 93
Re: Удаление лишней звуковой дорожки
1. к сожалению языков программирования не знаю 
2. как я понял mkvmerge пережмет видео, что возможно его ухудшит
2. как я понял mkvmerge пережмет видео, что возможно его ухудшит
-
kreator
- Сообщения: 384
- ОС: LFS
Re: Удаление лишней звуковой дорожки
mkv - это контейнер, как и avi/mpg/mp4/ogm. Контейнер нужен для совмещения нескольких потоков. Сами потоки могут быть пакованные (xvid/x264/mp3/etc) или нет (raw,pcm). На данный момент mkv самый прогрессивный контейнер - может содержать большое количество как аудио, так и видео потоков, сжатых самыми разными кодеками. А также титры всех (или почти всех) форматов. Часто используется для x264, так как поддерживает нелинейную частоту кадров, как mp4. Но в отличии от mp4 оставляет полную свободу в выборе аудио кодека.
-
Red Gremlin
- Сообщения: 512
- Статус: самоучка
- ОС: Rosa 2016 Fresh
Re: Удаление лишней звуковой дорожки
2. как я понял mkvmerge пережмет видео, что возможно его ухудшит
Нет, он перегонит в другой контейнер, более мощный и современный, заодно на процент-другой размер уменьшит за счет меньшего объема служебной информации.
1. к сожалению языков программирования не знаю sad.gif
Ну, хоть баш-то знать надо. В башевской консоли (по умолчанию почти везде идет именно bash) нужное действие сделает команда
for f in *.avi ; do mkvmerge -o "$f.mkv" -a 1 -d 0 -S "$f" --track-order 0:0,0:1 ; done
"В мире есть случайность, есть предопределенность и есть то, что ты планируешь совершить."
-
mixaiii
- Сообщения: 93
Re: Удаление лишней звуковой дорожки
Спасибо, работает!
только вот Totem, mkv файлы, при перемотки останавливает воспроизведение через несколько секунд
но mplayer играет и перематывает нормально и без ошибок
ещё раз спасибо!
п.с. и так, ради интереса, для avi значит так же не сделать?
только вот Totem, mkv файлы, при перемотки останавливает воспроизведение через несколько секунд
но mplayer играет и перематывает нормально и без ошибок
ещё раз спасибо!
п.с. и так, ради интереса, для avi значит так же не сделать?
-
kreator
- Сообщения: 384
- ОС: LFS
Re: Удаление лишней звуковой дорожки
п.с. и так, ради интереса, для avi значит так же не сделать?
Можно и для avi, если использовать avidemux2_cli вместо mkvmerge.