ออกอากาศวิดีโอของคุณบน YouTube XNUMX/XNUMX

ช่วงนี้เป็นงานอดิเรก ฉันถ่ายทำการบรรยายของนักจิตวิทยาที่ฉันรู้จัก ฉันแก้ไขภาพและเผยแพร่บนเว็บไซต์ของฉัน เมื่อเดือนที่แล้ว ฉันมีความคิดที่จะจัดการถ่ายทอดการบรรยายเหล่านี้บน YouTube ทุกวันตลอด 24 ชั่วโมง "ช่องทีวี" ที่เป็นธีมซึ่งอุทิศให้กับการเติบโตส่วนบุคคล

ฉันรู้วิธีออกอากาศเป็นประจำ แต่จะทำให้เป็นไฟล์วิดีโอได้อย่างไร? เพื่อให้ทำงานตลอด 24 ชั่วโมงทุกวัน มีความยืดหยุ่น เป็นอิสระมากที่สุดเท่าที่จะเป็นไปได้ และในขณะเดียวกันก็ไม่ได้ขึ้นอยู่กับคอมพิวเตอร์ที่บ้านของฉันแต่อย่างใด นี่คือสิ่งที่ฉันต้องค้นหา

ออกอากาศวิดีโอของคุณบน YouTube XNUMX/XNUMX

ใช้เวลาหลายวันในการหาทางแก้ไข ฉันศึกษาฟอรัมและคู่มือต่างๆ มากมาย หากไม่อย่างนั้นการออกอากาศของฉันก็คงไม่ได้ผล และตอนนี้การแกล้งกันประสบความสำเร็จแล้ว ฉันรู้สึกว่าจำเป็นต้องแบ่งปันวิธีแก้ปัญหาของตัวเอง บทความนี้จึงปรากฏดังนี้

สรุปวิธีแก้ปัญหาสุดท้ายมีดังนี้: VPS + ffmeg + สคริปต์ทุบตี. ภายใต้การตัด ฉันอธิบายขั้นตอนที่ดำเนินการและพูดคุยเกี่ยวกับข้อผิดพลาดที่ถูกค้นพบเมื่อจัดการออกอากาศ

ขั้นตอนที่ 1 – การออกอากาศจะมาจากไหน?

ในตอนแรก จำเป็นต้องตัดสินใจว่าจะออกอากาศจากที่ไหนและแหล่งที่มาจะอยู่ที่ไหน สิ่งแรกที่เข้ามาในใจก็คือ จากคอมพิวเตอร์ที่บ้านของคุณ. รวบรวมวิดีโอลงในเพลย์ลิสต์และเริ่มเล่นในเครื่องเล่นวิดีโอใดก็ได้ จากนั้นจับภาพหน้าจอและออกอากาศไปยัง YouTube แต่ฉันแทบจะปฏิเสธตัวเลือกนี้ทันทีเพราะ... หากต้องการใช้งาน คุณต้องเปิดคอมพิวเตอร์ที่บ้านไว้ตลอดเวลา ซึ่งหมายถึงเสียงรบกวนจากเครื่องทำความเย็นแม้ในเวลากลางคืน และทำให้มีการใช้ไฟฟ้าเพิ่มขึ้น (+100-150 kWh ทุกเดือน) และปรากฎว่าคุณไม่สามารถใช้คอมพิวเตอร์ที่บ้านระหว่างการออกอากาศได้ การเคลื่อนไหวของเมาส์จะปรากฏให้เห็นในการออกอากาศ

จากนั้นฉันก็เริ่มมองไปด้านข้าง บริการคลาวด์. ฉันกำลังมองหาบริการสำเร็จรูปที่สามารถอัปโหลดวิดีโอของฉันหรือตัวอย่างเช่น แทรกลิงก์ไปยังวิดีโอจาก YouTube และทั้งหมดจะรวมอยู่ในการออกอากาศแบบไม่หยุดนิ่งครั้งเดียว แต่ฉันไม่พบสิ่งที่เหมาะสม บางทีฉันอาจค้นหาได้ไม่ดีนัก สิ่งเดียวที่เหมาะกับฟังก์ชั่นนี้คือ restream.io ซึ่งเป็นบริการที่ช่วยออกอากาศพร้อมกันไปยังหลายแพลตฟอร์ม ดูเหมือนว่าพวกเขาจะอนุญาตให้คุณอัปโหลดวิดีโอของคุณเอง แต่บริการนี้ถูกสร้างขึ้นเพื่อวัตถุประสงค์ที่แตกต่างไปจากเดิมอย่างสิ้นเชิง และพวกเขาคาดหวังว่าการออกอากาศจะใช้เวลาเพียงไม่กี่ชั่วโมงเท่านั้น ฉันคิดว่าหากผ่านบริการนี้ มันเป็นไปได้ที่จะจัดการออกอากาศตลอด XNUMX ชั่วโมง มันก็จะมีค่าใช้จ่ายหลายสิบหรือหลายร้อยดอลลาร์ต่อเดือน แต่ฉันยังต้องการจัดระเบียบการออกอากาศโดยไม่เสียค่าใช้จ่ายหรือมีการลงทุนทางการเงินเพียงเล็กน้อย

เห็นได้ชัดว่าจำเป็นสำหรับการออกอากาศหรือ อุปกรณ์แยกต่างหาก หรือแม้แต่คอมพิวเตอร์แยกต่างหาก ฉันกำลังคิดถึงบางอย่างเช่น Raspberri Pi และอะไร? เขาไม่มีเครื่องทำความเย็น ฉันบันทึกวิดีโอลงในแฟลชไดรฟ์ เสียบสายอีเธอร์เน็ตแล้วปล่อยให้มันอยู่ที่ไหนสักแห่งในที่เปลี่ยวและออกอากาศ ตัวเลือก. แต่ฉันไม่มีทั้งตัวบอร์ดหรือประสบการณ์ในการทำงานกับมัน ดังนั้นฉันจึงปฏิเสธตัวเลือกนี้ด้วย

เป็นผลให้ฉันได้พบกับการสนทนาที่พวกเขาหารือเกี่ยวกับการทรงสร้าง เซิร์ฟเวอร์ของตัวเอง การออกอากาศ มันไม่ใช่สิ่งที่ฉันกำลังมองหา แต่ฉันมีแนวคิดหลัก - คุณสามารถใช้เซิร์ฟเวอร์ได้! ในการสนทนาครั้งนั้น แนะนำให้ใช้ VPS + nginx + OBS ร่วมกัน เห็นได้ชัดว่าชุดค่าผสมนี้ก็เหมาะกับฉันเช่นกัน สิ่งเดียวที่ทำให้ฉันสับสนคือฉันไม่เคยดูแลเซิร์ฟเวอร์มาก่อน และสำหรับฉันแล้วดูเหมือนว่าการมีเซิร์ฟเวอร์เฉพาะของตัวเองนั้นน่าสับสนและมีราคาแพง ฉันตัดสินใจว่าจะมีค่าใช้จ่ายเท่าไรในการเช่าเซิร์ฟเวอร์ที่มีการกำหนดค่าขั้นต่ำและรู้สึกประหลาดใจมาก

ออกอากาศวิดีโอของคุณบน YouTube XNUMX/XNUMX

ราคาจะแสดงเป็นรูเบิลเบลารุสและเป็นเพียงเศษเล็กเศษน้อย เพื่อทำความเข้าใจ 8 รูเบิลเบลารุสมีราคาประมาณ 3.5 ดอลลาร์หรือ 240 รูเบิลรัสเซีย เป็นเวลาหนึ่งเดือนของการใช้คอมพิวเตอร์ที่มีคุณสมบัติครบถ้วนซึ่งเปิดตลอด 24 ชั่วโมงทุกวันและมีอินเทอร์เน็ตที่รวดเร็ว ด้วยเหตุผลบางอย่าง การค้นพบนี้ทำให้ฉันสนุกสนานมาก และเป็นเวลาหลายวันที่ฉันเดินไปมาอย่างมีความสุขมาก เหมือนเด็กที่ค้นพบจรวดอวกาศ :)

อย่างไรก็ตาม ฉันใช้ประโยชน์จากข้อเสนอของเว็บไซต์แรกที่ Google ให้ฉันสำหรับคำถาม “การเช่า VPS” บางทีอาจมีวิธีแก้ปัญหาด้านงบประมาณมากกว่านี้ แต่ราคานี้เหมาะกับฉันและฉันไม่ได้มองไปไกลกว่านี้

เมื่อสร้างเซิร์ฟเวอร์ คุณสามารถเลือกระบบปฏิบัติการที่จะรันได้ คุณสามารถจัดระเบียบการออกอากาศในระบบใด ๆ ที่ระบุไว้และตัดสินใจตามความต้องการและความสามารถทางการเงินของคุณ (สำหรับเซิร์ฟเวอร์ที่ใช้ Windows พวกเขาจะขอค่าธรรมเนียมเพิ่มเติม) ฉันเลือก CentOS เพียงเพราะฉันมีประสบการณ์น้อยมาก่อน

ออกอากาศวิดีโอของคุณบน YouTube XNUMX/XNUMX

ขั้นตอนที่ 2 – การตั้งค่าเซิร์ฟเวอร์

สิ่งแรกที่คุณต้องการหลังจากสร้างเซิร์ฟเวอร์คือเชื่อมต่อผ่าน SSH ตอนแรกฉันใช้ PuTTy แต่หลังจากนั้นฉันก็เริ่มใช้แอป Secure Shell ซึ่งทำงานใน Google Chrome มันกลับกลายเป็นว่าสะดวกกว่าสำหรับฉัน

จากนั้นฉันก็เปลี่ยนชื่อโฮสต์ ตั้งค่าการซิงโครไนซ์เวลาบนเซิร์ฟเวอร์ อัปเดตระบบ ปรับแต่งด้วย iptables... และทำสิ่งอื่นๆ อีกมากมาย แต่ไม่ใช่เพราะจำเป็น ฉันแค่สนใจที่จะตั้งค่าเซิร์ฟเวอร์และมันได้ผลสำหรับฉัน ฉันชอบมันเมื่อมันได้ผล :)

นี่คือขั้นตอนที่คุณต้องดำเนินการ:

  1. เชื่อมต่อที่เก็บ EPEL
  2. ตั้งค่าเซิร์ฟเวอร์ FTP (ฉันเลือก vsftp)
  3. ติดตั้ง ffmpeg

ฉันจะไม่ให้คำสั่งโดยละเอียดคำแนะนำเหล่านี้ค่อนข้างเป็นแนวคิดเพื่อถ่ายทอดแผนปฏิบัติการทั่วไป หากคุณมีปัญหากับขั้นตอนใดๆ ก็ตาม สามารถแก้ไขได้อย่างรวดเร็วโดยใช้คำค้นหาของเครื่องมือค้นหา เช่น “CentOS เชื่อมต่อ EPEL” หรือ “CentOS ติดตั้งเซิร์ฟเวอร์ FTP” และในลิงก์แรกคุณสามารถดูคำแนะนำโดยละเอียดทีละขั้นตอนได้

อย่างที่ฉันเขียนไว้ก่อนหน้านี้ ฉันต้องการการผสมผสานระหว่าง VPS + nginx + OBS VPS – พร้อมแล้ว แต่คำถามก็เริ่มเกิดขึ้นในประเด็นอื่น OBS เป็นรายการออกอากาศ Open Broadcaster Software และใช้ได้กับสตรีมเท่านั้นเช่น เช่น ถ่ายภาพจากเว็บแคมแล้วออกอากาศ หรือการบันทึกหน้าจอ หรือการออกอากาศที่กำลังดำเนินอยู่ถูกเปลี่ยนเส้นทางไปยังไซต์อื่น แต่ฉันไม่มีสตรีม ฉันมีเพียงชุดไฟล์วิดีโอที่ต้องสร้างเป็นสตรีม

ฉันเริ่มขุดไปในทิศทางนี้และเจอ ffmpeg FFmpeg คือชุดไลบรารีโอเพ่นซอร์สฟรีที่ให้คุณบันทึก แปลง และสตรีมเสียงและวิดีโอดิจิทัลในรูปแบบที่หลากหลาย

และฉันรู้สึกประหลาดใจมากที่ ffmpeg สามารถทำได้มากแค่ไหน หากต้องการก็จะแยกเสียงออกจากวิดีโอ หากคุณต้องการ ระบบจะตัดส่วนของวิดีโอออกโดยไม่ต้องเข้ารหัสใหม่ หากคุณต้องการ มันจะแปลงจากรูปแบบหนึ่งไปเป็นอีกรูปแบบหนึ่ง และอีกมากมายอีกมากมาย จนถึงจุดที่คุณสามารถระบุไฟล์ได้ มันจะแปลงเป็นสตรีมและส่งไปยัง YouTube เอง เพียงเท่านี้ก็ประกอบโซ่แล้ว สิ่งที่เหลืออยู่คือการสรุปความแตกต่างให้เสร็จสิ้น

ขั้นตอนที่ 3 - การตั้งค่าการออกอากาศ

เราสร้างการออกอากาศบน YouTube ในขั้นตอนนี้เราต้องการเพียงลิงก์และคีย์การออกอากาศเท่านั้น ในภาพหน้าจอด้านล่างจะมีการเน้นด้วยสีแดง

ออกอากาศวิดีโอของคุณบน YouTube XNUMX/XNUMX

ต่อไป อัปโหลดไฟล์วิดีโอไปยังเซิร์ฟเวอร์ ที่เราวางแผนจะออกอากาศ จริงๆ แล้ว FTP จำเป็นสำหรับขั้นตอนนี้เท่านั้น หากคุณมีวิธีที่สะดวกในการอัพโหลดไฟล์ไปยังเซิร์ฟเวอร์ คุณก็ไม่จำเป็นต้องตั้งค่าเซิร์ฟเวอร์ FTP

เราส่งสตรีมไปยัง YouTube หากต้องการเริ่มออกอากาศ คุณต้องเรียกใช้ ffmpeg ด้วยแอตทริบิวต์หลายรายการ นี่คือคำสั่งที่สั้นที่สุดที่ฉันได้รับ:

ffmpeg -re -i lecture1.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%КЛЮЧ_ТРАНСЛЯЦИИ%

การถอดรหัสคุณสมบัติ-re – ระบุว่าจะต้องแปลงไฟล์เป็นสตรีม

-i – ระบุไฟล์ที่ควรเล่น สิ่งสำคัญคือต้องเรียกใช้คำสั่งจากไดเร็กทอรีเดียวกันกับที่ตั้งไฟล์วิดีโอ มิฉะนั้นคุณควรระบุลิงก์ที่แน่นอนไปยังไฟล์เช่น /usr/media/lecture1.mp4.

-f – กำหนดรูปแบบไฟล์เอาต์พุต ในกรณีของฉัน ปรากฎว่า ffmpeg แปลงไฟล์ของฉันจาก mp4 เป็น flv ได้ทันที

และในตอนท้าย เราจะระบุข้อมูลที่เราได้รับจาก YouTube ในหน้าการตั้งค่าการออกอากาศ เช่น ที่อยู่ที่คุณต้องการถ่ายโอนข้อมูลและรหัสการออกอากาศ เพื่อให้การออกอากาศปรากฏบนช่องของคุณโดยเฉพาะ

หากคุณทำทุกอย่างถูกต้องแล้วหลังจากรันคำสั่งนี้ YouTube จะเห็นสตรีมที่ส่ง หากต้องการเริ่มออกอากาศ คุณเพียงแค่คลิกปุ่ม "เริ่มออกอากาศ" ใน YouTube เอง

ขั้นตอนที่ 4 - เพิ่มความเป็นอิสระ

ยินดีด้วย! ตอนนี้คุณรู้วิธีเริ่มออกอากาศจากไฟล์วิดีโอแล้ว แต่นี่ยังไม่เพียงพอสำหรับการออกอากาศตลอด XNUMX ชั่วโมงทุกวัน สิ่งสำคัญคือหลังจากเล่นวิดีโอแรกเสร็จแล้ว วิดีโอถัดไปจะเริ่มต้นทันที และเมื่อวิดีโอทั้งหมดแสดงขึ้น การเล่นก็จะเริ่มต้นอีกครั้ง

ฉันมีตัวเลือกต่อไปนี้: สร้างไฟล์ .sh โดยที่ฉันเขียนคำสั่งสำหรับไฟล์วิดีโอแต่ละไฟล์ และในตอนท้ายสุดระบุคำสั่งให้เรียกใช้สคริปต์เดิมอีกครั้ง ผลลัพธ์คือการเรียกซ้ำดังนี้:

Команда 1... (запуск трансляции файла lecture1.mp4)
Команда 2... (запуск трансляции файла lecture2.mp4)
Команда 3... (запуск трансляции файла lecture3.mp4)
bash start.sh

และใช่ มันได้ผล ด้วยความพึงพอใจกับตัวเอง ฉันจึงเปิดการทดสอบการออกอากาศและเข้านอน

ในตอนเช้าความประหลาดใจอันไม่พึงประสงค์รอฉันอยู่ ปรากฎว่าการออกอากาศใช้เวลาเพียงไม่กี่นาทีและจบลงเกือบจะในทันทีเมื่อฉันปิดคอมพิวเตอร์ การตรวจสอบพบว่าคำสั่งที่เรียกใช้ในลักษณะนี้จะดำเนินการในขณะที่ผู้ใช้ล็อกอินเข้าสู่เซิร์ฟเวอร์ ทันทีที่ฉันตัดการเชื่อมต่อ คำสั่งที่ฉันใช้อยู่ก็ถูกขัดจังหวะ เพื่อป้องกันไม่ให้สิ่งนี้เกิดขึ้นต่อหน้าทีมก็เพียงพอแล้ว bash เพิ่มคำสั่ง nohup. ซึ่งจะทำให้กระบวนการทำงานทำงานได้โดยไม่คำนึงถึงว่าคุณมีอยู่หรือไม่

สคริปต์เวอร์ชันขั้นต่ำสุดท้ายมีลักษณะดังนี้:

ffmpeg -re -i lecture1.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%КЛЮЧ_ТРАНСЛЯЦИИ%
ffmpeg -re -i lecture2.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%КЛЮЧ_ТРАНСЛЯЦИИ%
ffmpeg -re -i lecture3.mp4 -f flv rtmp://a.rtmp.youtube.com/live2/%КЛЮЧ_ТРАНСЛЯЦИИ%
nohup bash start.sh $

โดยที่ start.sh คือไฟล์ที่สคริปต์นี้ถูกเขียน และไฟล์นี้จะต้องอยู่ในไดเรกทอรีเดียวกันกับไฟล์วิดีโอ

การเพิ่มเครื่องหมายดอลลาร์ที่ส่วนท้ายทำให้กระบวนการทำงานในเบื้องหลัง เพื่อให้คุณสามารถใช้คอนโซลต่อไปได้โดยไม่รบกวนการออกอากาศ

โบนัสรวมสารพัดดังต่อไปนี้:

  • คุณสามารถสลับการเล่นไฟล์ได้ด้วยตนเอง ในการดำเนินการนี้ คุณจะต้อง "ฆ่า" กระบวนการ ffmpeg ที่กำลังทำงานอยู่ในปัจจุบัน หลังจากนี้ การเล่นไฟล์ถัดไปจากรายการจะเริ่มขึ้นโดยอัตโนมัติ
  • สามารถเพิ่มวิดีโอใหม่ในการออกอากาศได้โดยไม่ต้องหยุดการออกอากาศ เพียงอัปโหลดวิดีโอไปยังเซิร์ฟเวอร์ เพิ่มคำสั่งเพื่อเรียกใช้ไฟล์นี้ในสคริปต์ และบันทึก นั่นคือทั้งหมดที่ ในการเล่นรอบถัดไป ไฟล์ใหม่จะถูกถ่ายทอดพร้อมกับไฟล์เก่า

ขั้นตอนที่ 5 - ปรับแต่ง ffmpeg

โดยหลักการแล้วเราสามารถหยุดอยู่ตรงนั้นได้ แต่ฉันอยากให้การออกอากาศเป็นมิตรกับผู้ชมมากขึ้นอีกหน่อย

สมมติว่ามีคนไปออกอากาศ เริ่มดู ชอบ และอยากดูบรรยายนี้ตั้งแต่ต้น แต่ออกอากาศไม่อนุญาตให้กรอกลับ หากต้องการดูการบรรยายตั้งแต่เริ่มต้น บุคคลจะต้องไปที่เว็บไซต์ของฉันและได้รับบันทึกการบรรยายที่สนใจ คุณจะบอกได้อย่างไรว่าเขาสนใจการบรรยายเรื่องไหน? มีการบรรยายบนเว็บไซต์อยู่แล้ว 16 ครั้งและมีเพียงการบรรยายเพิ่มเติมทุกสัปดาห์ ผมคิดว่าแม้กระทั่งตัวผมเองที่ถ่ายทำและตัดต่อการบรรยายทั้งหมดนี้ ก็ยังไม่สามารถระบุจากการสุ่มได้ว่าเป็นการบรรยายแบบใด ดังนั้นจึงจำเป็นต้องกำหนดบรรยายแต่ละครั้ง

ตัวเลือกในการเพิ่มคำบรรยายให้กับไฟล์วิดีโอต้นฉบับในโปรแกรมตัดต่อไม่เหมาะกับฉัน จำเป็นต้องตรวจสอบให้แน่ใจว่ามีการใช้ไฟล์ต้นฉบับ ดังนั้นการสนับสนุนการออกอากาศจึงต้องมีการเคลื่อนไหวร่างกายเพียงเล็กน้อยจากฉัน

ปรากฎว่า ffmpeg ก็สามารถช่วยฉันได้เช่นกัน มันมีคุณสมบัติพิเศษ -vfซึ่งช่วยให้สามารถวางข้อความไว้เหนือวิดีโอได้ หากต้องการเพิ่มข้อความลงในวิดีโอ คุณต้องเพิ่มส่วนต่อไปนี้ในคำสั่ง:

-vf drawtext="fontfile=OpenSans.ttf:text='Лекция 13: Психология эмоций. Как создавать радость?':fontsize=26:fontcolor=white:borderw=1:bordercolor=black:x=40:y=670"

คำอธิบายของพารามิเตอร์fontfile= – ลิงก์ไปยังไฟล์ฟอนต์ หากไม่มีสิ่งนี้ คำบรรยายจะไม่ถูกเพิ่มลงในวิดีโอ วิธีที่ง่ายที่สุดคือวางไฟล์ฟอนต์ไว้ในโฟลเดอร์เดียวกับวิดีโอ หรือคุณจะต้องระบุเส้นทางแบบเต็มไปยังไฟล์

text= – ที่จริงแล้วคือข้อความที่ต้องวางไว้ด้านบนของวิดีโอ

fontsize= – ขนาดตัวอักษรเป็นพิกเซล

fontcolor= - สีตัวอักษร.

borderw= – ความหนาของโครงร่างรอบข้อความเป็นพิกเซล (ฉันมีข้อความสีขาวและมีโครงร่างสีดำหนา 1 พิกเซล)

bordercolor= – สีโครงร่าง

x= и y= – พิกัดข้อความ จุด 0;0 อยู่ที่มุมซ้ายบน พิกัดของฉันถูกเลือกในลักษณะที่ข้อความวางอยู่ที่มุมซ้ายล่างโดยมีความละเอียดวิดีโอ 1280x720 พิกเซล

ดูเหมือนว่านี้:

ออกอากาศวิดีโอของคุณบน YouTube XNUMX/XNUMX

ขั้นตอนที่ 6 – กำหนดคุณภาพของการออกอากาศ

เพียงเท่านี้การออกอากาศก็พร้อมแล้ว การออกอากาศ FFmpeg มีการเล่นไฟล์ การมีอยู่ของฉันไม่จำเป็นสำหรับการออกอากาศ แม้แต่การบรรยายทุกครั้งก็ลงนาม ดูเป็นอันนั้นแหละ..

แต่มีความแตกต่างอีกอย่างหนึ่งเกิดขึ้น - ฉันเลือกการกำหนดค่าเซิร์ฟเวอร์ขั้นต่ำและไม่ได้ดึงการออกอากาศออกมา การกำหนดค่าเซิร์ฟเวอร์: 1 คอร์ (เช่น 2.2 GHz), RAM 1 กิกะไบต์, SSD 25 GB มี RAM เพียงพอ แต่โปรเซสเซอร์โหลดเกือบสมบูรณ์ที่ 100% (และบางครั้งก็ถึง 102-103% :) สิ่งนี้ทำให้การออกอากาศค้างทุก ๆ สองสามวินาที ไม่ดี

คุณสามารถใช้การกำหนดค่าที่มีราคาแพงกว่าด้วยสองคอร์ โชคดีที่เทคโนโลยีคลาวด์ การเปลี่ยนการกำหนดค่าเซิร์ฟเวอร์เกิดขึ้นได้โดยการกดปุ่มสองสามปุ่ม แต่ฉันต้องการให้พอดีกับความสามารถในการกำหนดค่าขั้นต่ำ ฉันเริ่มศึกษาเอกสาร ffmpeg และใช่ มีการตั้งค่าที่ให้คุณควบคุมโหลดบนระบบด้วย

คุณภาพของภาพสูงสามารถทำได้สองวิธี: โหลด CPU สูงหรือการรับส่งข้อมูลขาออกสูง ปรากฎว่ายิ่งโปรเซสเซอร์สามารถรับภาระได้มากขึ้นเท่าใด แบนด์วิธของช่องสัญญาณก็จะยิ่งน้อยลงเท่านั้น หรือคุณไม่สามารถโหลดโปรเซสเซอร์ได้มากเกินไป แต่คุณจะต้องมีช่องสัญญาณกว้างพร้อมพื้นที่รับส่งข้อมูลขนาดใหญ่ หากมีข้อจำกัดทั้งโปรเซสเซอร์และขนาดของช่องสัญญาณขาออก/การรับส่งข้อมูล คุณจะต้องลดคุณภาพของภาพเพื่อให้การออกอากาศดำเนินไปอย่างราบรื่น

เซิร์ฟเวอร์ของฉันสามารถเข้าถึงช่องสัญญาณกว้าง 10 Mbit/s ความกว้างนี้พอดีเลย แต่มีการจำกัดการรับส่งข้อมูล - 1 TB ต่อเดือน ดังนั้น เพื่อให้เป็นไปตามข้อจำกัดการรับส่งข้อมูล โฟลว์ขาออกของฉันไม่ควรเกิน ~300 KB ต่อวินาที เช่น บิตเรตของสตรีมขาออกไม่ควรเกิน 2,5 Mbit/s อย่างไรก็ตาม YouTube แนะนำให้ออกอากาศที่บิตเรตนี้

เพื่อควบคุมโหลดบนระบบ ffmpeg ใช้วิธีการที่แตกต่างกัน เขียนเกี่ยวกับเรื่องนี้ได้ดี ที่นี่. ฉันลงเอยด้วยการใช้สองคุณลักษณะ: -crf и -preset.

ปัจจัยอัตราคงที่ (CRF) – นี่คือค่าสัมประสิทธิ์ซึ่งคุณสามารถปรับคุณภาพของภาพได้ CRF สามารถมีค่าได้ตั้งแต่ 0 ถึง 51 โดยที่ 0 คือคุณภาพของไฟล์ต้นฉบับ 51 คือคุณภาพที่แย่ที่สุดที่เป็นไปได้ ขอแนะนำให้ใช้ค่าตั้งแต่ 17 ถึง 28 ค่าเริ่มต้นคือ 23 ด้วยค่าสัมประสิทธิ์ 17 วิดีโอจะมีลักษณะเหมือนกันกับต้นฉบับ แต่ในทางเทคนิคแล้วจะไม่เหมือนเดิม เอกสารยังระบุด้วยว่าขนาดของวิดีโอสุดท้าย ขึ้นอยู่กับ CRF ที่ระบุ มีการเปลี่ยนแปลงแบบทวีคูณ เช่น การเพิ่มค่าสัมประสิทธิ์ 6 จุดจะเพิ่มบิตเรตของวิดีโอขาออกเป็นสองเท่า

หากใช้ CRF คุณสามารถเลือก "น้ำหนัก" ของภาพที่ส่งออกได้ จากนั้นจึงใช้ ที่ตั้งไว้ล่วงหน้า (-ที่ตั้งไว้ล่วงหน้า) คุณสามารถกำหนดได้ว่าโปรเซสเซอร์จะโหลดหนักแค่ไหน คุณลักษณะนี้มีพารามิเตอร์ต่อไปนี้:

  • ultrafast
  • superfast
  • veryfast
  • faster
  • fast
  • medium – ค่าเริ่มต้น
  • slow
  • slower
  • veryslow

ยิ่งระบุพารามิเตอร์ "เร็วขึ้น" ภาระของโปรเซสเซอร์ก็จะยิ่งสูงขึ้นเท่านั้น

ขั้นแรก ฉันเลือกค่าที่ตั้งไว้ล่วงหน้าซึ่งโดยพื้นฐานแล้วยากเกินไปสำหรับโปรเซสเซอร์ของฉัน จากนั้นเลือกโหลดอย่างละเอียดยิ่งขึ้นโดยใช้ CRF ในกรณีของฉัน ค่าที่ตั้งล่วงหน้าใช้งานได้ fastและสำหรับ crf ฉันตัดสินที่ค่า 24

ข้อสรุป

นั่นคือทั้งหมดที่ คำสั่งสุดท้ายในการเริ่มออกอากาศคือ:

ffmpeg -re -i lecture1.mp4 -vf drawtext="fontfile=OpenSans.ttf:text='Лекция 1: Жонглирование картинами мира':fontsize=26:fontcolor=white:borderw=1:bordercolor=black:x=40:y=670" -c:v libx264 -preset fast -crf 24 -g 3 -f flv rtmp://a.rtmp.youtube.com/live2/%КЛЮЧ_ТРАНСЛЯЦИИ%

เหลือเพียงสองจุดที่ไม่ได้อธิบายไว้ที่นี่:

1) -c:v libx264 – การระบุตัวแปลงสัญญาณเฉพาะสำหรับการทำงานกับไฟล์ต้นฉบับ
2) -g 3 – การระบุจำนวนคีย์เฟรมอย่างชัดเจน ในกรณีนี้ มีการระบุว่าทุกๆ เฟรมที่สามควรเป็นคีย์เฟรม ค่ามาตรฐานคือ 5 หรือ 8 แต่ YouTube สาบานและขออย่างน้อย 3

คุณสามารถดูได้ว่าการออกอากาศมีคุณภาพเพียงใด ที่นี่.

โหลดบนเซิร์ฟเวอร์มีดังนี้:

ออกอากาศวิดีโอของคุณบน YouTube XNUMX/XNUMX

ออกอากาศวิดีโอของคุณบน YouTube XNUMX/XNUMX

จากข้อมูลการตรวจสอบ เป็นที่ชัดเจนว่าโหลดของโปรเซสเซอร์อยู่ในช่วง 70% ถึง 95% และในระหว่างสัปดาห์การออกอากาศไม่เคยถึง 100% ซึ่งหมายความว่าด้วยการตั้งค่าเหล่านี้โปรเซสเซอร์ก็เพียงพอแล้ว

เมื่อโหลดดิสก์ฉันสามารถพูดได้ว่าแทบจะไม่โหลดเลยและ HDD ปกติก็เพียงพอสำหรับการออกอากาศ

แต่ปริมาณการจราจรขาออกทำให้ฉันกังวล ปรากฎว่าสตรีมขาออกของฉันอยู่ในช่วง 450 ถึง 650 KB ต่อวินาที ในหนึ่งเดือนจะอยู่ที่ประมาณ 1,8 เทราไบต์ คุณอาจต้องซื้อการรับส่งข้อมูลเพิ่มเติมหรือเปลี่ยนไปใช้การกำหนดค่าที่มีสองคอร์เนื่องจาก... ฉันไม่ต้องการลดคุณภาพของภาพ

***

ด้วยเหตุนี้ฉันจะบอกว่าการตั้งค่าการออกอากาศตั้งแต่เริ่มต้นใช้เวลาประมาณ 1-2 ชั่วโมง นอกจากนี้การอัปโหลดวิดีโอไปยังเซิร์ฟเวอร์จะใช้เวลาส่วนใหญ่

การเปิดตัวการออกอากาศดังกล่าวไม่ได้พิสูจน์ตัวเองว่าเป็นเครื่องมือทางการตลาด บางที ถ้าเราเพิ่มจำนวนการดูเพื่อให้อัลกอริทึมของ YouTube รับการออกอากาศนี้และเริ่มแสดงอย่างแข็งขันตามคำแนะนำ ก็อาจมีบางอย่างเกิดขึ้น ในกรณีของฉัน มีการรับชมต่อเนื่อง 16 วัน 58 ครั้ง

นั่นก็โอเค การออกอากาศสอดคล้องกับหน้าหลักของเว็บไซต์ของฉันอย่างกลมกลืน ทำให้ฉันมีโอกาสแสดงความคิดเห็นของตนเองเกี่ยวกับอาจารย์และการบรรยายได้อย่างรวดเร็ว

และครู่หนึ่ง สิ่งสำคัญคือต้องไม่ละเมิดลิขสิทธิ์ของใครก็ตาม มิฉะนั้นจะถูกบล็อก ฉันใจเย็นกับการออกอากาศของฉันเพราะว่า... ฉันเลือกส่วนแทรกเพลงที่ใช้งานฟรีโดยเฉพาะ และผู้เขียนเนื้อหานั่งอยู่ที่คอมพิวเตอร์ใกล้ ๆ และไม่คัดค้านฉันใช้เนื้อหาของเธอเลย :)

แต่หากคุณมีวิทยุเล่นอยู่เบื้องหลังที่ไหนสักแห่งในการออกอากาศของคุณ หรือคุณใช้แทร็กโปรดในระหว่างการตัดต่อ หรือถ่ายซีเควนซ์วิดีโอจากมิวสิกวิดีโอ ละครโทรทัศน์ หรือภาพยนตร์ยอดนิยม การออกอากาศของคุณก็ตกอยู่ในความเสี่ยง สิ่งสำคัญคือ การออกอากาศต้องมีการโหลดความหมายขั้นต่ำเป็นอย่างน้อย มิฉะนั้นอาจถูกบล็อกว่าเป็นสแปม

***

นั่นคือทั้งหมดที่ฉันมี ฉันหวังว่าคู่มือนี้จะเป็นประโยชน์กับใครบางคน หากคุณมีสิ่งที่จะเพิ่มเขียนฉันยินดีที่จะอ่านส่วนเพิ่มเติมและคำชี้แจงของบทความ

ที่มา: will.com

เพิ่มความคิดเห็น