8

Я могу конвертировать mp4 в mp3 в ffmpeg, но я не уверен, как добавить миниатюру видео.

В настоящее время есть это для преобразования из mp4 в mp3

ffmpeg -i video.mp4 -acodec libmp3lame -metadata title=video -b:a 256 -f input.mp3

Должен ли я снова выполнить это через ffmpeg с помощью этой команды?

ffmpeg -i input.mp3 -i cover.jpg -map_metadata 0 -map 0 -map 1 output.mp3

или есть ли способ использовать сложные фильтры для достижения этой цели?

Я знаю, что это работает для FLV, но это не похоже на mp4

ffmpeg -i video.flv -i cover.jpg -map 0:a -map 1 -c:v copy -metadata title=video -b:a 256k out.mp3

2 ответа2

4

Лучший ответ с объяснениями, включающий умные предложения от slhck и Mulvya, лишенные ненужных параметров.

ffmpeg -i video.mp4 -i cover.jpg -acodec libmp3lame -b:a 256k -c:v copy -map 0:a:0 -map 1:v:0 output.mp3

ffmpeg инструмент управления аудио / видео: уже выбран OP, он особенно подходит для этой работы.

-i video.mp4 первый входной файл: видео с аудио, которое мы хотим извлечь.

-i cover.jpg второй входной файл, изображение, которое мы хотим отобразить при воспроизведении полученного аудиофайла.

-acodec libmp3lame мы хотим создать файл .mp3, используя кодировщик LAME.

-b:a 256k устанавливает битрейт для звуковой дорожки равным 256 КБ / с. Более разумный вариант - кодировать с переменной скоростью передачи битов, указав параметр качества : -q:a 0 запрашивает максимальное качество, а -q:a 4 часто представляет собой хороший компромисс между воспринимаемым качеством звука и битрейтом (и, следовательно, файлом размер).

-c:v copy это означает, что видеопоток (изображение .jpg) не нужно перекодировать, а нужно скопировать как есть. Это полезно, чтобы избежать ненужной обработки и потенциальной потери качества при перекодировании в формат с потерями. В нашем случае без этого параметра изображение будет декодировано из .jpg и закодировано в .png, который, по-видимому, является собственным форматом, который выбирается по умолчанию. Это не будет означать потери качества, так как .png - это потери, но чаще всего это приводит к увеличению размера файла из-за того факта, что .jpg (с потерями) обычно предлагает лучшую степень сжатия.

-map 0:a:0 выбирает поток, который будет использоваться из первого (0::) входного файла: это должен быть первый (:0) аудио (a) поток, который он содержит.

-map 1:v:0 выбирает первый (:0) поток видео (v) из второго (1::) входного файла.

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

Оригинальный ответ

Это создает аудиофайл (.mp3) со статическим изображением, соединяя видео (.mp4) и картинку (.jpg) с моей свадьбы:

ffmpeg -i video.mp4 -i cover.jpg -acodec libmp3lame -metadata title=video -b:a 256k -map_metadata 0 -map 0:1 -map 1 output.mp3

См. Ffmpeg документацию по выбору входных потоков с -map , которая является подходящей опцией здесь.

Сначала я запустил команду с -map 0 -map 1 и получил следующую информацию:

Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> png (native))
  Stream #0:1 -> #0:1 (aac (native) -> mp3 (libmp3lame))
  Stream #1:0 -> #0:2 (mjpeg (native) -> png (native))

Таким образом, я знал, что мне нужен поток 1 (aac audio) из файла с индексным номером 0 , то есть видеофайла; поэтому его нужно было явно выбрать с -map 0:1 -map 1 .

2

Вы можете использовать VLC Media Player -

Шаг 1: Откройте VLC и выберите «Media». Нажмите на конвертировать / сохранить.

Шаг 2: В следующем появившемся окне выберите «Добавить» и выберите видеофайл (MP4) для преобразования.

Шаг 3: Затем нажмите стрелку вниз на «Преобразовать / Сохранить», затем нажмите «Преобразовать».

Шаг 4: В следующем появившемся окне убедитесь, что выбрана кнопка «Преобразовать». Перейдите к выбору типа аудиофайла, который вы хотите создать. В нашем случае это MP3-файл, который мы конвертируем в.

Шаг 5: Выберите выходной пункт назначения и нажмите «Старт». VLC начнет преобразование.

для добавления миниатюры вы можете обратиться по этой ссылке (объяснил очень хорошо).

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