Untuk mendukung beberapa browser, Anda harus menggunakan FFmpeg untuk mengonversi file .mov
ke dua penampung yang berbeda: penampung MP4 dan penampung WebM. Dalam
praktik yang sebenarnya, Anda mungkin akan menentukan codec pada saat yang sama. Untuk saat ini, kita biarkan FFmpeg
menggunakan {i>default-<i}nya.
Jika Anda baru mengenal konsep ini, sebaiknya baca Dasar-dasar file media sebelum melanjutkan. Selain itu, jika Anda belum menginstal FFmpeg, baca Dasar-dasar aplikasi media untuk menyiapkannya dengan Docker.
Kami menggunakan penginstalan Docker yang disarankan dan
file glocken.mov dari Menyiapkan file media untuk web
yang ditambahkan di dalam direktori media
. Kami menggunakan FFmpeg versi 4.3.2 untuk semua
perintah di bagian ini.
Container
Pertama, kita harus membuat dua penampung dari file .mov
dengan ekstensi file .mp4
dan .webm
dengan streaming audio dan video di dalam file tersebut.
Tinjau Dasar-dasar file media
untuk mengetahui informasi selengkapnya tentang penampung dan aliran data jika Anda tidak mengetahui
perbedaannya.
MP4
/media # ffmpeg -i glocken.mov glocken.mp4
WebM
/media # ffmpeg -i glocken.mov glocken.webm
WebM perlu waktu lebih lama untuk dibuat daripada MP4. Hal ini tidak mengherankan
ketika Anda melihat hasilnya. Meskipun MP4 mengompresi sekitar 83%
ukuran file
asli, WebM turun menjadi 78%
dari ukuran file asli, tetapi bisa jauh lebih kecil.
Hasil Anda akan bervariasi. Perlu diketahui bahwa FFmpeg 4.2.2
menetapkan kecepatan bit video default ke 200k
, dan di 4.3.2
tidak menetapkan kecepatan bit default.
Jadi, video tersebut tidak lagi hanya4%
dari aslinya. Anda dapat melihatnya sendiri
menggunakan perintah bash ls -a
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, gunakan FFmpeg dan Shaka Packager seperti yang telah ditunjukkan dalam 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 penampung (jenis file). Dua file dengan jenis penampung yang sama
dapat menampung data yang dikompresi menggunakan codec yang berbeda. Misalnya, format WebM
memungkinkan audio dienkode menggunakan Vorbis atau Opus. Untuk mengubah codec kita
gunakan FFmpeg. Misalnya, perintah ini menghasilkan file .mkv
dengan codec 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
ditujukan untuk menentukan codec audio dan
video.
Halaman Konversi media mencantumkan perintah yang diperlukan untuk mengonversi codec. Tabel di bawah ini meringkas library yang digunakan dalam FFmpeg untuk melakukan konversi codec untuk file WebM dan MP4. Berikut adalah format yang 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 |
karya seni | WebM | libopus |
vorbis | WebM | libvorbis |
Selanjutnya, kami akan menunjukkan cara mengubah kecepatan bit file yang baru Anda buat.