หมายเหตุ:คำตอบนี้ถูกแก้ไขอย่างมากตั้งแต่การโพสต์ดั้งเดิม ตอนนี้เป็นปี 2017 แล้ว สตรีมมิ่งทำงานแตกต่างจากที่เคยเป็น คู่มือนี้จะดาวน์โหลดสตรีมวิดีโอหนึ่งชุดที่มีความละเอียดเพียงครั้งเดียวโดยไม่ต้องสตรีมแบบปรับได้
ความต้องการ
ก่อนอื่นอย่าลืมดาวน์โหลดffmpeg
เวอร์ชันล่าสุด (ดาวน์โหลดบิลด์สแตติกไม่ต้องโทรapt-get install ffmpeg
หรือคล้ายกัน) จะเป็นการดีที่รวบรวมมันด้วยตัวคุณเอง ใช้เวลาไม่นาน
หากต้องการสร้างวิดีโอที่รองรับโดยเบราว์เซอร์ส่วนใหญ่ให้ตรวจสอบตารางความเข้ากันได้ล่าสุดเสมอ ไม่มีตัวแปลงสัญญาณ / รูปแบบเดียวที่ทำงานในทุกเบราว์เซอร์ แต่ถ้าคุณสร้าง H.264 ใน MP4 และ VP9 ใน WebM ด้วยตัวแปลงสัญญาณเสียงที่เกี่ยวข้องคุณจะได้รับการสนับสนุนสำหรับ Chrome, Firefox, Safari และ IE บางรุ่น
WebM (VP9 / Vorbis)
ทำตามคำแนะนำในคู่มือFFmpeg VP9และใช้วิธีการเข้ารหัสแบบสองรอบด้วยข้อ จำกัด ด้านอัตรา:
ffmpeg -y -i input-c:v libvpx-vp9 -b:v 2000k -minrate 500k -maxrate 2500k -c:a libvorbis -pass 1 -f webm /dev/null && \
ffmpeg -i input-c:v libvpx-vp9 -b:v 2000k -minrate 500k -maxrate 2500k -c:a libvorbis -pass 2 output.webm
บิตเรตเป้าหมายจะขึ้นอยู่กับความละเอียดอัตราเฟรมประเภทของเนื้อหาและคุณภาพที่คุณต้องการ 2.5 MBit / s น่าจะเหมาะกับวิดีโอ HD ที่ 30 fps ดูคำแนะนำของ Google นี้สำหรับคำแนะนำ
MP4 (H.264 / AAC)
ทำตามคำแนะนำในคู่มือFFmpeg H.264และใช้วิธีการเข้ารหัสแบบสองรอบด้วยข้อ จำกัด ด้านอัตรา:
ffmpeg -y -i input -c:v libx264 -b:v 5000k -minrate 1000k -maxrate 8000k -pass 1 -c:a aac -f mp4 /dev/null && \
ffmpeg -i input -c:v libx264 -b:v 5000k -minrate 1000k -maxrate 8000k -pass 2 -c:a aac -movflags faststart output.mp4
ที่นี่อัตราบิตเป้าหมายควรสูงกว่าวิดีโอ VP9 ประมาณ 50% เนื่องจาก H.264 นั้นไม่มีประสิทธิภาพ เพิ่ม-movflags faststart
ตัวเลือกในการผ่านครั้งที่สองเพื่อให้การโหลดวิดีโอเริ่มต้นเร็วขึ้น
สำหรับการตั้งค่าตัวเลือกเสียงดูคู่มือการเข้ารหัส AAC
.mov
วิดีโอ HTML5 และไม่มีh.264
ส่วนขยาย มีเป็น.264
ซึ่งเป็น bytestream ภาคผนวกขดิบสำหรับหน่วย NAL การเข้ารหัสวิดีโอไม่ใช่วิทยาศาสตร์จรวด แต่คุณต้องลงทุนเวลาเล็กน้อยเพื่อทำความรู้จักกับแนวคิด