Залежно від кодеків, які використовуються у вашому 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.
Щоб покращити якість звуку, використовуйте більш високе значення якості. Для FAAC 100
за замовчуванням.
Ось кілька думок про команду ffmpeg, запропоновану у питанні.
-ar
відноситься до швидкості вибірки звуку. Я б рекомендував не возитися з цим, поки не зрозумієте речі краще. Якщо ви хочете грати з кодування аудіо, налаштуйте бітрейт (наприклад, -b:a 128k
) і дозвольте кодеру вибрати, що робити на основі цього.
Якщо ти все-таки підеш цією дорогою ...
Якість CD - вибірка 44100 Гц; типове відео використовує 48000 ГГц.
Ви можете зауважити, що 22050 у прикладі оригінального запитання становить 1/2 частоти вибірки якості компакт-дисків. якщо ви перетворюєте CD-матеріал, це хороший вибір. Якщо ви починаєте з джерела 48 кГц (який ви, напевно, є; знову ж таки, це набагато частіше, ніж 44100 у відеофайлах), я б замість цього використовував 24 кГц. Це, мабуть, не має великого значення, але це може здатися трохи краще і використовувати трохи менше процесора для перетворення.