Параметры потока ffmpeg для mp3, обложка mp4

У меня потенциально есть миллионы потоковых видео HLS, которые можно создать из обложек и mp3. Очевидно, я хотел бы свести результирующую пропускную способность к минимуму. Я пробовал различные флаги ffmpeg, специально предложенные для этой задачи, и даже некоторые из них в медиа-сегментере Apple, который утверждал, что помещает обложку в каждый сегмент (мета-файл/мета-тип). У меня было много проблем с тем, чтобы Chrome отображал обложку при воспроизведении с использованием HTML5, несмотря на то, что он работал в VLC. Я получил рабочую командную строку, подобную этой.

ffmpeg -loop 1 -i 1k_image.jpg -i song_219kbs.mp3 -c:v libx264 -pix_fmt yuv420p  -profile:v baseline -c:a aac -strict experimental -b:a 64k -r 1 -shortest song_64k_2fps_baseline.mp4

Профиль -pix_fmtи базовый уровень казались ключевыми. Ты видишь, что я делаю ненужное? Есть ли лучший способ достичь моей цели?

Кроме того, я просматриваю несколько коммерческих решений для транскодирования в облаке и не вижу, как их настроить для этого. Я пропустил варианты?

Пожалуйста, включите полный консольный вывод вашей команды.
Используйте libfdk_aac. Он имеет лучшее качество на битрейт, чем встроенный в ffmpeg кодировщик AAC. Кроме того, не забудьте -movflags +faststartпоместить атом MOOV в начало файла (необходим для потоковой передачи).

Ответы (1)

Если вы просто хотите вставить обложку, вы можете сохранить результат в формате mp3, например:

ffmpeg -i original.mp3 -i cover.png -map 0:0 -map 1:0 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" -id3v2_version 3 -write_id3v1 1 result.mp3

Если вы создаете mp4, например, для YouTube, то я предлагаю разделить процесс на два шага - сначала создать видеофильм без звуковой дорожки, длительность которого несколько больше , чем у аудио. Затем мультиплексируйте видео и аудио вместе с -shortestопцией, которая обрезает видео до точной длительности аудио. С точки зрения времени эти два шага займут немного больше времени, чем один проход, но весь ваш рабочий процесс будет намного проще и управляемее.

Вау, это действительно сработало. Разве это не короче с ffmpeg?