Agar dapat mendukung beberapa browser, Anda harus menggunakan FFmpeg untuk mengonversi .mov
ke dua kontainer yang berbeda: kontainer MP4 dan kontainer WebM. Di beberapa
praktik yang sebenarnya, Anda mungkin akan
menentukan codec pada saat yang sama. Untuk saat ini,
kita membiarkan FFmpeg
menggunakan {i>default-<i}nya.
Jika Anda masih baru dengan konsep ini, Anda harus membaca Dasar-dasar file media sebelum melangkah lebih jauh. Selain itu, jika Anda tidak menginstal FFmpeg, baca Dasar-dasar aplikasi media untuk menyiapkannya dengan Docker.
Kita menggunakan penginstalan Docker yang disarankan dan
file glocken.mov dari Menyiapkan file media untuk web
ditambahkan di dalam
direktori media
. Kami menggunakan FFmpeg versi 4.3.2 untuk semua
perintah di bagian ini.
Container
Pertama, kita perlu membuat dua penampung dari file .mov
dengan .mp4
dan ekstensi file .webm
dengan streaming audio dan video di dalam file tersebut.
Pelajari Dasar-dasar file media
untuk mengetahui lebih lanjut tentang container dan stream jika Anda tidak mengetahui perbedaan antara
mereka.
MP4
/media # ffmpeg -i glocken.mov glocken.mp4
WebM
/media # ffmpeg -i glocken.mov glocken.webm
WebM membutuhkan waktu lebih lama untuk membuat file daripada MP4. Ini tidak mengherankan
ketika Anda melihat
hasilnya. Sementara MP4 mengompresi menjadi
sekitar 83%
dari ukuran file asli
WebM, namun ukurannya lebih kecil hingga 78%
dari ukuran aslinya, tetapi dapat jauh lebih kecil.
Hasil Anda akan bervariasi. Penting untuk diingat bahwa 4.2.2
FFmpeg menetapkan
kecepatan bit video default ke 200k
dan di 4.3.2
tidak menyetel kecepatan bit default.
Jadi, video tersebut tidak lagi hanya4%
dari video aslinya. Anda dapat melihatnya sendiri
menggunakan ls -a
perintah bash di folder tempat file media Anda berada.
Contoh:
/media # ls -l
-rw-r--r-- 1 root root 12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root root 10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root root 9503301 Mar 7 18:30 glocken.webm
Untuk mendapatkan file kecil, Anda dapat melakukan ini:
/media # ffmpeg -i glocken.mov -b:v 200k glocken.webm
...
frame= 300 fps=3.6 q=0.0 Lsize= 483kB time=00:00:10.01 bitrate= 395.0kbits/s speed=0.121x
video:359kB audio:117kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.356068%
/media # ls -l
-rw-r--r-- 1 root root 12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root root 10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root root 494497 Mar 7 18:45 glocken.webm
Periksa hasil kerja Anda
Untuk memverifikasi hasil Anda, gunakan FFmpeg dan Shaka Packager seperti yang telah ditunjukkan di Dasar-dasar Aplikasi Media:
/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4
Codec
Berikutnya, codec. Seperti yang dinyatakan dalam Dasar-dasar file media, codec
tidak sama dengan container (jenis file). Dua file dari container yang sama
dapat menyimpan data yang dikompresi
menggunakan {i>codec<i} yang berbeda. Format WebM misalnya
memungkinkan audio dienkode menggunakan Vorbis atau Opus. Untuk mengubah codec kita
gunakan FFmpeg. Misalnya, perintah ini menghasilkan file .mkv
dengan audio vorbis
dan codec video av1
.
/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv
Dalam contoh ini, flag -c:a
dan -c:v
digunakan untuk menentukan audio dan
codec video masing-masing.
Halaman Konversi media mencantumkan perintah yang diperlukan untuk mengonversi codec. Tabel di bawah ini meringkas library yang digunakan di FFmpeg untuk melakukan konversi codec untuk file WebM dan MP4. Berikut adalah format yang masing-masing direkomendasikan untuk DASH dan HLS.
Video
Codec | Perluasan | Koleksi |
---|---|---|
av1 | WebM, mkv | libaom-av1 |
h264 | MP4 | libx264 |
vp9 | WebM | {i>libvpx-vp9<i} |
Audio
Codec | Perluasan | Koleksi |
---|---|---|
aac | MP4 | aac |
opus | WebM | libopus |
Vorbis | WebM | libvorbis |
Selanjutnya, kami akan menunjukkan cara mengubah kecepatan bit file yang baru dibuat.