ถ้าจะรองรับหลายเบราว์เซอร์ คุณจะต้องใช้ FFmpeg เพื่อแปลง .mov
ลงในคอนเทนเนอร์ 2 รายการที่แตกต่างกัน ได้แก่ คอนเทนเนอร์ MP4 และคอนเทนเนอร์ WebM ใน
คุณควรระบุตัวแปลงรหัสไปด้วยในเวลาเดียวกัน สำหรับตอนนี้
เราจะให้ FFmpeg ใช้ค่าเริ่มต้น
หากแนวคิดเหล่านี้ยังใหม่สำหรับคุณ คุณควรอ่าน ข้อมูลเบื้องต้นเกี่ยวกับไฟล์สื่อ ก่อนที่จะดำเนินการต่อ นอกจากนี้ ถ้าคุณไม่ได้ติดตั้ง FFmpeg โปรดอ่าน ข้อมูลเบื้องต้นเกี่ยวกับแอปพลิเคชันสื่อ เพื่อตั้งค่ากับ Docker
เราใช้การติดตั้ง Docker ที่แนะนำและ
ไฟล์ glocken.mov จากเตรียมไฟล์สื่อสำหรับเว็บ
เพิ่มภายในไดเรกทอรี media
แล้ว เราใช้ FFmpeg เวอร์ชัน 4.3.2 สำหรับ
คำสั่งในส่วนนี้
คอนเทนเนอร์
ก่อนอื่น เราต้องสร้างคอนเทนเนอร์ 2 รายการจากไฟล์ .mov
ด้วย .mp4
และนามสกุลไฟล์ .webm
รายการที่มีทั้งสตรีมเสียงและวิดีโอภายในไฟล์
อ่านข้อมูลเบื้องต้นเกี่ยวกับไฟล์สื่อ
ของคอนเทนเนอร์และสตรีมเพิ่มเติม หากคุณไม่ทราบความแตกต่างระหว่าง
ให้พวกเขา
MP4
/media # ffmpeg -i glocken.mov glocken.mp4
WebM
/media # ffmpeg -i glocken.mov glocken.webm
WebM ใช้เวลาสร้างนานกว่า MP4 นี่ไม่ใช่เรื่องน่าประหลาดใจเมื่อคุณดูที่
ผลลัพธ์ ขณะที่ MP4 บีบอัดเป็นประมาณ 83%
ของไฟล์ต้นฉบับ
WebM จะลดขนาดลงมา 78%
ของขนาดต้นฉบับ แต่อาจเล็กกว่านี้มาก
ผลลัพธ์จะแตกต่างกันไป สิ่งสำคัญที่ควรทราบคือ FFmpeg 4.2.2
ได้ตั้งค่า
อัตราบิตเริ่มต้นของวิดีโอเป็น 200k
และใน 4.3.2
ไม่ได้ตั้งค่าอัตราบิตเริ่มต้นไว้
วิดีโอจึงไม่ใช่เพียงแค่4%
จากต้นฉบับเท่านั้น คุณดูข้อมูลนี้ได้ด้วยตัวเอง
โดยใช้คำสั่ง Bash ของ ls -a
ในโฟลเดอร์ที่มีไฟล์สื่ออยู่
เช่น
/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
หากต้องการรับไฟล์ขนาดเล็ก ให้ทำดังนี้แทน
/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
ตรวจสอบงาน
หากต้องการยืนยันผลลัพธ์ ให้ใช้ FFmpeg และ Shaka Packager ดังที่แสดงใน ข้อมูลเบื้องต้นเกี่ยวกับแอปพลิเคชันสื่อ
/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4
ตัวแปลงรหัส
จากนั้น ตัวแปลงรหัส ตามที่ระบุไว้ในข้อมูลพื้นฐานเกี่ยวกับไฟล์สื่อ ตัวแปลงรหัส
ไม่ใช่สิ่งเดียวกันกับคอนเทนเนอร์ (ประเภทไฟล์) 2 ไฟล์ของคอนเทนเนอร์เดียวกัน
ประเภท สามารถเก็บข้อมูลที่บีบอัดโดยใช้ตัวแปลงรหัสที่ต่างกัน ตัวอย่างเช่น รูปแบบ WebM
อนุญาตให้เข้ารหัสเสียงโดยใช้ Vorbis หรือ Opus ในการเปลี่ยนตัวแปลงรหัสเรา
ใช้ FFmpeg เช่น คำสั่งนี้จะเอาต์พุตไฟล์ .mkv
พร้อมไฟล์เสียง vorbis
และตัวแปลงรหัสวิดีโอ av1
/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv
ในตัวอย่างนี้ Flag -c:a
และ -c:v
มีไว้เพื่อระบุเสียงและ
ตัวแปลงรหัสวิดีโอตามลำดับ
รายการหน้าการแปลงสื่อ คำสั่งที่จำเป็นในการแปลงตัวแปลงรหัส ตารางด้านล่างจะสรุปไลบรารีที่ใช้ ใน FFmpeg เพื่อแปลงตัวแปลงรหัสสำหรับไฟล์ WebM และ MP4 ต่อไปนี้คือ รูปแบบที่แนะนำสำหรับ DASH และ HLS ตามลำดับ
วิดีโอ
ตัวแปลงรหัส | ส่วนขยาย | คลัง |
---|---|---|
av1 | WebM, MKV | Libaom-Av1 |
h264 | MP4 | libx264 |
vp9 | WebM | libvpx-vp9 |
เสียง
ตัวแปลงรหัส | ส่วนขยาย | คลัง |
---|---|---|
AAC | MP4 | AAC |
โอปัส | WebM | Libopus |
Vorbis | WebM | libvorbis |
จากนั้น เราจะแสดงวิธีเปลี่ยนอัตราบิตของไฟล์ที่สร้างขึ้นใหม่