Tergantung pada codec yang digunakan dalam FLV Anda, Anda mungkin dapat pergi dengan hanya membungkusnya kembali dalam wadah mp4. Anda harus H.264
atau MPEG4 simple profile
video dan AAC
audio. Anda dapat mengetahui beberapa info tentang file sumber Andaffmpeg -i input.flv
Saya tidak yakin apakah hanya memiliki H.264 / MPEG4 Simple + AAC cukup baik atau jika ada opsi spesifik untuk codec yang didukung. Cukup mudah untuk diuji:
Coba gunakan
ffmpeg -i input.flv -c copy -copyts output.mp4
-copyts
apakah copy timestamps
itu akan membantu sinkronisasi audio.
Jika itu tidak berhasil, coba paksakan codec audio dan video. Ini akan menyandikan ulang file:
ffmpeg -i input.flv -c:v libx264 -crf 23 -c:a libfaac -q:a 100 output.mp4
Untuk meningkatkan kualitas video, Anda dapat menggunakan nilai CRF yang lebih rendah, misalnya apa saja hingga 18. Untuk mendapatkan file yang lebih kecil, gunakan CRF yang lebih tinggi, tetapi perhatikan bahwa ini akan menurunkan kualitas.
Untuk meningkatkan kualitas audio, gunakan nilai kualitas yang lebih tinggi. Untuk FAAC, 100
default.
Berikut adalah beberapa pemikiran tentang perintah ffmpeg yang disarankan dalam pertanyaan.
-ar
mengacu pada laju sampel audio. Saya akan merekomendasikan tidak mengacaukan hal ini sampai Anda memahami hal-hal dengan lebih baik Jika Anda ingin bermain dengan pengkodean audio, sesuaikan bitrate (mis., -b:a 128k
) Dan biarkan pembuat enkode memilih apa yang harus dilakukan berdasarkan itu.
Jika Anda akhirnya menuruni jalan ini ...
Kualitas CD adalah pengambilan sampel 44100Hz; Video khas menggunakan 48000Hz.
Anda dapat mencatat bahwa 22050 dalam contoh pertanyaan asli adalah 1/2 tingkat sampel kualitas cd. jika Anda menurunkan konversi materi CD, ini adalah pilihan yang baik. Jika Anda mulai dengan sumber 48KHz (yang mungkin Anda; lagi, ini jauh lebih umum daripada 44100 dalam file video) saya akan menggunakan 24KHz sebagai gantinya. Mungkin tidak terlalu penting, tetapi mungkin terdengar sedikit lebih baik dan menggunakan sedikit CPU untuk melakukan konversi.