В чем разница между «-acodec» и «-c» в FFMPEG

Я новичок в 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 ответа
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 являются просто ярлыками для их аудио или видео подмножеств.

  • Спасибо за исчерпывающий ответ. Итак, в моем конкретном случае, если я просто хочу объединить 3 mp3, что бы вы посоветовали мне использовать? Предпочтителен короткий простой синтаксис, может быть, мой второй вариант подойдет?

    — Нико
    вчерашний день

  • 1

    Да, ваша вторая команда, безусловно, самая лаконичная. поскольку вы начинаете с файлов .mp3, они уже содержат только звук, поэтому -c copy и -acodec copy имеют точно такой же эффект.

    — Фрэнк Томас
    вчерашний день

Для адресации вашего титула.

Делать -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 и думает, что они в порядке, поэтому с ними все должно быть в порядке!

    — барлоп
    вчерашний день

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *