В зависимости от кодеков, используемых в вашем FLV, вы можете просто обернуть его в контейнер mp4. Вам понадобится H.264
или MPEG4 simple profile
видео и AAC
аудио. Вы можете узнать некоторую информацию о вашем исходном файле сffmpeg -i input.flv
Я не уверен, достаточно ли просто иметь H.264 / MPEG4 Simple + AAC или есть определенные опции для поддерживаемых кодеков. Это достаточно легко проверить:
Попробуйте использовать
ffmpeg -i input.flv -c copy -copyts output.mp4
-copyts
это copy timestamps
это поможет аудио синхронизации.
Если это не сработает, попробуйте форсировать аудио и видео кодеки. Это перекодирует файл:
ffmpeg -i input.flv -c:v libx264 -crf 23 -c:a libfaac -q:a 100 output.mp4
Чтобы улучшить качество видео, вы можете использовать более низкое значение CRF, например, до 18. Чтобы получить файл меньшего размера, используйте более высокий CRF, но учтите, что это ухудшит качество.
Чтобы улучшить качество звука, используйте более высокое значение качества. Для FAAC 100
по умолчанию.
Вот несколько соображений по поводу команды ffmpeg, предложенной в этом вопросе.
-ar
относится к частоте дискретизации звука. Я бы порекомендовал не возиться с этим, пока вы не разберетесь лучше Если вы хотите играть с аудиокодированием, отрегулируйте битрейт (например, -b:a 128k
) и позвольте кодировщику выбрать, что делать на основании этого.
Если вы в конечном итоге идти по этой дороге ...
Качество CD составляет 44100Гц; типичное видео использует 48000 Гц.
Вы можете заметить, что 22050 в исходном примере вопроса составляет 1/2 частоты выборки качества CD. если вы конвертируете материал CD, это хороший выбор. Если вы начинаете с источника 48 кГц (что, вероятно, и есть; опять же, это гораздо чаще, чем 44100 в видеофайлах), я бы использовал вместо этого 24 кГц. Это, вероятно, не будет иметь большого значения, но может звучать немного лучше и потреблять немного меньше ресурсов ЦП для преобразования.
ffmpeg
прекращена поддержкаlibaac
. В этом вопросе предлагается использоватьffmpeg
собственный кодер AAC via-c:a aac
или кодек Fraunhofer FDK AAC via-c:a libfdk_aac
(который требует компиляцииffmpeg
с поддержкойlibfdk_aac
).