Pertama, Anda harus memahami perbedaan antara menggunakan profil FFmpeg dan opsi perintah langsung. -vpre
menggunakan .ffpreset
file yang terletak di /usr/share/ffmpeg/
atau di mana ffmpeg diinstal. Ini adalah serangkaian pasangan opsi = nilai , dan dalam kasus Anda, Anda harus mendefinisikannya sendiri (setidaknya saya tidak tahu baseline
preset yang dikirimkan dengan ffmpeg).
Saya akan merekomendasikan untuk tidak menggunakan preset kecuali Anda membuatnya sendiri dan tahu untuk apa opsi baris perintah. Saya telah menggunakan ffmpeg selama bertahun-tahun sekarang, dan saya tidak pernah menggunakan preset — saya tidak pernah benar-benar harus melakukannya.
Baris perintah khas untuk menghasilkan video H.264 yang kompatibel dengan sebagian besar perangkat adalah:
ffmpeg -i <input> \
-c:v libx264 -crf 23 -profile:v baseline -level 3.0 -pix_fmt yuv420p \
-c:a aac -ac 2 -b:a 128k \
-movflags faststart \
output.mp4
Beberapa catatan:
H.264 / AAC adalah kombinasi terbaik untuk dukungan luas di HTML5. Browser yang tidak memiliki decoder H.264 akan membutuhkan video VP8 / Vorbis juga. Untuk beberapa contoh baris perintah, lihat jawaban ini . Lihat juga halaman dukungan browser Wikipedia untuk codec lainnya.
H.264 juga berfungsi dengan baik di seluruh perangkat seluler.
The -profile:v baseline
dan -level 3.0
pilihan hanya diperlukan untuk perangkat mobile lama yang tidak dapat menangani fitur CPU-intensif H.264. Anda biasanya dapat mengabaikannya atau menggunakannya -profile:v main
.
CRF menentukan kualitas (18–28 adalah kisaran yang masuk akal, lebih rendah berarti kualitas yang lebih baik). Anda tentu saja dapat juga menggunakan bitrate tetap dengan -b:v 1000k
atau serupa. Pilih bitrate yang cocok dengan resolusi video. Beberapa perangkat berdaya rendah mungkin tidak dapat menangani bitrate tinggi yang tidak perlu.
The -movflags faststart
pilihan adalah penting untuk streaming, karena bergerak metadata kontainer ke awal file daripada meninggalkannya di akhir. Ini akan memungkinkan pemutaran untuk segera mulai alih-alih harus menunggu file dimuat seluruhnya.
Namun, semuanya bermuara pada menemukan penyebut umum terendah untuk semua perangkat yang Anda targetkan, yang mungkin tidak selalu ada. Tentu saja Anda tidak ingin menggunakan codec lain (yaitu, lebih buruk ) daripada H.264. Bahkan, tidak bijaksana untuk menawarkan video yang dikodekan Baseline kepada klien yang dapat memecahkan kode Utama atau Profil Tinggi. Anda akan menukar kualitas dengan kompleksitas penguraian yang dikurangi.
Dari pengalaman saya, perangkat Android dapat memainkan Baseline H.264 dengan audio AAC-LC dalam wadah MP4. Saya tidak pernah punya masalah dengan itu. Bahkan, beberapa perangkat mungkin memainkan profil yang lebih tinggi juga, meskipun tidak didukung secara resmi. iOS umumnya juga mendukung Baseline H.264, tetapi Anda tentu dapat menggunakan profil Utama pada beberapa perangkat juga. Lihat posting ini (yang sedikit ketinggalan jaman) untuk beberapa pedoman.
Jika Anda memiliki pengguna dengan masalah pemutaran, Anda harus mencari tahu video mana yang menyebabkan masalah, dan mendapatkan rincian lebih lanjut tentang perangkat keras dan perangkat lunak pemutar apa yang mereka gunakan. Lalu kita bisa berbicara tentang pemecahan masalah kasus tertentu.