Перетворити Mp4 в Mp3 із мініатюрою


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

Ви дійсно хочете, щоб конвертор автоматично встановив мініатюру? Тому що в іншому випадку ви можете змінити це вручну, але я не впевнений, чи будете ви після цього. Якщо ви можете це зробити з FLV, але не з MP4, я б просто створив сценарій, який виконує обидві команди.
RamonRobben

@RamonRobben Я намагаюся уникати запуску ffmpeg двічі
nadermx

ви можете спробувати щось на кшталт цього ffmpeg -i in.mp4 -i test.png -map 0: 0 -карта 1: 0 -c копія -id3v2_version 3 -metaдані: s: v title = "Обкладинка альбому" -метаданних: s: v comment = "Обкладинка (спереду)" out.mp3 Я завантажую ffmpeg сам, щоб почати тестувати його.
RamonRobben

Відповіді:


3

Краще відповідь , з поясненням, включаючи розумні пропозиції від 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 інструмент для виробництва аудіо / відео: вже обраний ОП, він особливо підходить для цієї роботи.

-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 - lossles, але частіше за все це призведе до збільшення розміру файлу через те, що .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 аудіо) з файлу, який має індексний номер 0, тобто відеофайл; тому його потрібно було чітко вибрати -map 0:1 -map 1.


Я спробував це, але це дає мені Stream map '0:1' matches no streams. To ignore this, add a trailing '?' to the map.
nadermx

Запустіть його за допомогою ´-map 0 -карти 1´ і подивіться, які доступні потоки.
simlev

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

1
@nadermx Ви можете -map 0:a:0 -map 1:v:0вибрати перший аудіо- та відеопотік першого та другого файлів відповідно.
slhck

1
Уникайте кодування вводу зображення, особливо у форматі JPG. -c:v copy.
Gyan

2

ви можете скористатися медіаплеєром vlc -

Крок 1: Відкрийте VLC та виберіть "Медіа". Клацніть на конвертувати / зберегти.

Крок 2: У наступному вікні, яке з'явиться, виберіть "додати" та виберіть відеофайл (MP4) для конвертації.

Крок 3: Далі клацніть стрілку вниз на "Перетворити / зберегти", потім натисніть "Перетворити".

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

Крок 5: Виберіть вихідний пункт та натисніть «Пуск». Потім VLC розпочне перетворення.

для додавання мініатюр ви можете посилатися на це посилання (пояснено дуже добре).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.