Я новичок в FFMPEG и не могу найти особенно четкой документации по этому поводу.
Я объединяю 3 mp3 (мне просто нужно мультиплексирование, без кодирования / перекодирования).
Обе эти команды работают нормально. Есть ли разница между использованием ‘-c’ и ‘-acodec’?
ffmpeg -i "concat:a.mp3|b.mp3|c.mp3" -acodec copy out.mp3
ffmpeg -i "concat:a.mp3|b.mp3|c.mp3" -c copy out.mp3
Я искал в Google несколько часов, я нашел различную документацию по ffmpeg, но не объяснял, что на самом деле делают -c или -acodec. Я думаю, -c означает «кодек», а -acodec означает «аудиокодек» ?? Что каждый делает / есть разница / один лучше?
Я нашел документацию, которая не помогает:
https://ffmpeg.org/ffmpeg-all.html
https://gist.github.com/tayvano/6e2d456a9897f55025e25035478a3a50
Также приветствуются любые предложения о том, как улучшить это самое (мне просто нужно последовательно соединить 3 mp3).
Благодарю.
2 ответа
-c
или же -codec
— это универсальный селектор потока, поэтому вы можете использовать его для установки кодека для любого из потоков, будь то аудио или видео.
-acodec
это подмножество этой функции, которая автоматически распространяется на аудиопотоки
-acodec:1
такой же как -codec:a:1
и указывает, что вы устанавливаете кодек для второго аудиопотока (первый аудиопоток равен 0).
из связанной документации: -c, -codec
-c[:stream_specifier] кодек (ввод / вывод, на поток) -кодек[:stream_specifier] кодек (ввод / вывод, на поток)
Select an encoder (when used before an output file) or a decoder (when used before an input file) for one or more streams. codec is the
имя декодера / кодировщика или копии специального значения (только вывод), чтобы указать, что поток не должен перекодироваться.
-acodec
-acodec кодек (ввод / вывод)
Установите аудиокодек. Это псевдоним для -codec: a.
есть также -vcodec, который работает таким же образом для видеопотоков.
поэтому, чтобы собрать все вместе, рассмотрим эту команду из документа
ffmpeg -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT
это говорит о том, что используйте исходный кодек для всех пар (-c copy
), а для второго видеопотока используйте libx264 (-c:v:1 libx264
), а для 138-го аудиопотока используйте libvorbis (-c:a:137 libvorbis
).
так с -c
вы можете контролировать все типы потоков, тогда как -acodec
и -vcodec
являются просто ярлыками для их аудио или видео подмножеств.
Для адресации вашего титула.
Делать -c copy
скопирует как аудиокодек (acodec), так и видеокодек (vcodec)
-c copy
такой же как -acodec copy -vcodec copy
-c:a copy
такой же как -acodec copy
.
-c:v copy
такой же как -vcodec copy
и, конечно, вы можете указать кодек, например -vcodec libx264
или же -c:v libx264
-C означает кодек. В качестве альтернативы вы можете написать -codec https://ffmpeg.org/ffmpeg.html например -codec:a copy
и если вы не укажете, например -acodec copy
или же -acodec blahblah
или же -codec:a ...
, затем он выберет кодек по умолчанию. Вы также можете сказать -vn
для видео нет. https://stackoverflow.com/questions/9913032/how-can-i-extract-audio-from-video-with-ffmpeg поэтому он не копирует видео. или же -an
без звука Удалите звук из видеофайла с помощью FFmpeg
Спасибо за исчерпывающий ответ. Итак, в моем конкретном случае, если я просто хочу объединить 3 mp3, что бы вы посоветовали мне использовать? Предпочтителен короткий простой синтаксис, может быть, мой второй вариант подойдет?
— Нико
вчерашний день- 1
@niico Я не эксперт по ffmpeg. Я знаю только то, что я исследовал и пробовал, это сложная программа. и я не помню, использовал ли я для этого ffmpeg, но я бы, вероятно, просто перешел в приглашение cmd и сделал
copy /b aaa.mp3+bbb.mp3 ccc.mp3
но это не очень хорошо для метаданных, в этой ссылке упоминаются некоторые другие методы, в том числе с помощью ffmpeg stackoverflow.com/questions/62618/…— барлоп
вчерашний день
На самом деле я использовал копию — но он создает mp3-файлы неправильной длины, и некоторые mp3-плееры будут проигрывать новый mp3 только на протяжении первого. ffmpeg устраняет эту проблему.
— Нико
вчерашний день@niico да, как уже упоминалось, команда копирования Windows с / b, используемая для объединения mp3-файлов, имеет проблемы, она грязная .. эта ссылка SO упоминает массу решений, в том числе с ffmpeg.
— барлоп
вчерашний день
@niico в вашем вопросе также говорится, что ваши команды работают нормально … Фрэнк, кажется, довольно много знает о ffmpeg и думает, что они в порядке, поэтому с ними все должно быть в порядке!
— барлоп
вчерашний день
Спасибо за исчерпывающий ответ. Итак, в моем конкретном случае, если я просто хочу объединить 3 mp3, что бы вы посоветовали мне использовать? Предпочтителен короткий простой синтаксис, может быть, мой второй вариант подойдет?
— Нико
вчерашний день
Да, ваша вторая команда, безусловно, самая лаконичная. поскольку вы начинаете с файлов .mp3, они уже содержат только звук, поэтому
-c copy
и-acodec copy
имеют точно такой же эффект.— Фрэнк Томас
вчерашний день