บันทึกสตรีมสด — ตัวสร้างคำสั่ง yt-dlp
ประกอบคำสั่ง yt-dlp เพื่อบันทึกสตรีมสด และเริ่มตั้งแต่ต้นในที่ที่แพลตฟอร์มยอมให้ทำ
บันทึกสดอย่างปลอดภัย
บันทึกตั้งแต่ต้นจะเก็บสตรีมจากจุดเริ่ม ไม่ใช่จากตอนที่คุณสั่งรัน ตราบใดที่แพลตฟอร์มยังเก็บช่วงก่อนหน้าไว้ ส่วนรอสตรีมจะคอยตรวจสตรีมที่นัดไว้และเริ่มทันทีที่ขึ้นถ่ายทอด
เลือก MKV เถอะ การบันทึกที่หยุดกะทันหัน — และการบันทึกสดก็หยุดกะทันหันอยู่แล้ว — มักยังเหลือไฟล์ MKV ที่เล่นได้ ขณะที่ MP4 ที่ถูกตัดระหว่างเขียนมักเปิดไม่ขึ้นเลย การบันทึกสดทำต่อไม่ได้ การเลือก container จึงเป็นเกราะป้องกันทั้งหมดที่คุณมี
การรอสตรีมที่นัดไว้เป็นโหมดคนละแบบกับการบันทึกสตรีมที่กำลังถ่ายทอด wait-for-video สำรวจ URL ซ้ำ ๆ จนกระทั่งสตรีมเปิด แล้วเริ่มบันทึก — ปล่อยเทอร์มินัลทิ้งไว้วิ่งต่อและมันจะจับได้ตั้งแต่นาทีแรก ช่วงเวลาระหว่างการตรวจคือหน่วยนาที ไม่ใช่วินาที เริ่มคำสั่งให้เร็วไว้ก่อน การไปถึงสายหนึ่งตาเช็กคือเสียสตรีมไปหลายนาที และไม่มีตัวเลือกใดกู้นาทีที่ไม่เคยถูกบันทึกไว้กลับมาได้
การบันทึกตั้งแต่ต้นมีเส้นแบ่งรายแพลตฟอร์ม: YouTube เก็บช่วงต้นของสตรีมไว้และเสิร์ฟให้ตามคำขอ ตัวเลือกนี้จึงไปถึงจริง Twitch ก็เช่นกันในกรอบเวลาเก็บรักษาของมัน แพลตฟอร์มอื่นไม่เก็บอะไรเลยก่อนนาทีที่คุณเข้าร่วม นี่คือเหตุที่ตัวเลือกนี้ไม่ใช่สวิตช์วิเศษ — มันดึงสิ่งที่แพลตฟอร์มเก็บไว้ และแต่ละแพลตฟอร์มเก็บได้ไม่เท่ากัน ถ้าแพลตฟอร์มมีการนำกลับมาฉายให้หลังจบ การนำกลับมาฉายเป็นแหล่งที่ดีกว่าการจับสดทุกแบบ
ไลฟ์สตรีมคือ HLS โดยนิยาม: segment สั้น ๆ หลายร้อยชิ้นที่ไหลเข้ามาแบบเรียลไทม์ ถูก ffmpeg ต่อเข้า container ไปเรื่อย ๆ ตามที่มันมาถึง นี่คือเหตุที่การบันทึกไลฟ์คือกรณีที่ MKV สำคัญที่สุด — MP4 ต้องเขียนดัชนีตอนท้าย รายงานที่โดนฆ่าตายนาทีที่สามของสตรีมสองชั่วโมงจึงไม่มีดัชนีเลยแม้แต่ชิ้นเดียว พื้นที่ดิสก์เป็นข้อจำกัดจริงอีกด้าน การบันทึกไลฟ์โตเท่าบิตเรตของสตรีมตลอดเวลาที่มันวิ่งอยู่ และขีดจำกัดขนาดปกป้องดิสก์ไว้จากสตรีมที่วิ่งสิบสองชั่วโมงเพราะเจ้าของไปลืมกดหยุด
พอจบไปแล้ว มีสองเรื่องที่สมควรถูกพูดออกมา การบันทึกที่มีช่วงสัญญาณตายเป็นเรื่องปกติ — ความเงียบระหว่างช่วงต่าง ๆ ของงานมาจากต้นทาง — และการตัดมันออกทีหลังคือการตัดต่อ ไม่ใช่การดาวน์โหลดที่ล้มเหลว ส่วนสตรีมที่จบไปแล้วเมื่อกี่ชั่วโมง ตอนที่คุณไปเจอมันเป็น VOD ธรรมดาเต็มตัวแล้ว ใช้ตัวเลือกวิดีโอปกติของแพลตฟอร์ม ซึ่งก็คือชุดที่ฟอร์มนี้แสดงเป็นค่าเริ่มต้น และเอาตัวเลือกเฉพาะไลฟ์มาใช้เฉพาะตอนที่สตรีมยังถ่ายทอดอยู่จริง ๆ