Я могу конвертировать 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
Ответы:
Лучший ответ с объяснением, включающий умные предложения от slhck и Mulvya, лишенные ненужных параметров.
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
это выбирает поток first (:0
) video (v
) из1:
входного файла second ( ).output.mp3
имя этого параметра было выбрано хитро, чтобы уже предположить, что это должно быть имя, которое будет дано выходному звуковому файлу (.mp3) со встроенным изображением, которое мы хотим создать.Оригинальный ответ
Это создает аудиофайл (.mp3) со статическим изображением, соединяя видео (.mp4) и картинку (.jpg) с моей свадьбы:
См. Ffmpeg документацию по выбору входных потоков с помощью
-map
, которая является подходящей опцией здесь.Сначала я просто запустил команду
-map 0 -map 1
и получил следующую информацию:Таким образом, я знал, что хочу поток
1
(aac audio) из файла с индексным номером0
, т.е. видеофайла; поэтому он должен быть явно выбран с-map 0:1 -map 1
.источник
Stream map '0:1' matches no streams. To ignore this, add a trailing '?' to the map.
Stream mapping:
Stream #0:0 -> #0:0 (aac (native) -> mp3 (libmp3lame))
Stream #1:0 -> #0:1 (mjpeg (native) -> png (native))
-map 0:a:0 -map 1:v:0
выбрать первые аудио и видео потоки первого и второго файла соответственно.-c:v copy
,Вы можете использовать VLC Media Player -
Шаг 1: Откройте VLC и выберите «Media». Нажмите на конвертировать / сохранить.
Шаг 2: В следующем появившемся окне выберите «Добавить» и выберите видеофайл (MP4) для преобразования.
Шаг 3: Затем нажмите стрелку вниз на «Конвертировать / Сохранить», затем нажмите «Конвертировать».
Шаг 4: В следующем появившемся окне убедитесь, что выбрана кнопка «Преобразовать». Перейдите к выбору типа аудиофайла, который вы хотите создать. В нашем случае это MP3-файл, который мы конвертируем в.
Шаг 5: Выберите выходной пункт назначения и нажмите «Старт». VLC начнет преобразование.
для добавления миниатюры вы можете обратиться по этой ссылке (объяснено очень хорошо).
источник