2

Можно ли сгенерировать FLV из MP3 и JPG без бесполезного зацикливания изображения и при этом иметь возможность искать аудио?

Эта команда создает видео без возможности поиска:
ffmpeg -y -i audio.mp3 -i image.jpg -r 1 -acodec copy video.flv

и этот генерирует искомый, но с бесполезным зацикливанием изображения, занимающего и пространство, и время:
ffmpeg -y -loop_input -i audio.mp3 -i image.jpg -r 1 -acodec copy video.flv -shortest

1 ответ1

3

Вы можете искать только ключевые кадры. Ключевые кадры должны быть I-кадрами, то есть содержать полную картинку. Таким образом, вам придется зациклить изображение, чтобы создать необходимые I-кадры для поиска.

Вы можете установить частоту создания I-кадра, используя опцию GOP (-g). Если вы действительно хотите минимизировать размер файла, вы можете поэкспериментировать с установкой как можно более низкой частоты кадров и использовать (-g 0), чтобы убедиться, что каждый кадр является I-кадром, поэтому видео по-прежнему доступно для поиска, например

Ключевой кадр каждые две секунды:

ffmpeg -y -loop_input -i audio.mp3 -i image.jpg -r 1/2 -g 0 -acodec copy video.flv

Ключевой кадр каждые четыре секунды:

ffmpeg -y -loop_input -i audio.mp3 -i image.jpg -r 1/4 -g 0 -acodec copy video.flv

и т.п.

Также очевидно, что сжатие JPG с хорошим компрессором (например, Photoshop's Save for Web с качеством 60-70) также поможет.

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