Cách livestream 24/7 trên YouTube không cần OBS

Bắt đầu bằng tin tốt, vì gần như không ai nói thẳng điều này.

YouTube không cắt stream của bạn. Không có giới hạn thời lượng phát trực tiếp. Nếu encoder của bạn giữ kết nối ổn định, một buổi livestream YouTube có thể chạy hàng ngày, hàng tuần hay hàng tháng mà nền tảng không kết thúc nó.

Điều này ngược hẳn với Twitch, nơi mọi buổi phát liên tục bị kết thúc đúng 48 giờ mà không báo trước. Trên YouTube, vấn đề đó không tồn tại.

Vậy nếu 24/7 trên YouTube về mặt kỹ thuật là trường hợp dễ, tại sao phần lớn những kênh này lại lặng lẽ ngừng hoạt động?


Bốn thứ thực sự giết chết chúng

1. Máy tính của bạn

Đây mới là lý do thật, và nó rất nhàm chán.

Stream 24/7 bằng OBS nghĩa là một chiếc máy không bao giờ ngủ, không bao giờ cài bản cập nhật, không bao giờ mất mạng, và không bao giờ được dùng vào việc gì khác. Mỗi lần Windows cập nhật, mỗi lần cúp điện, mỗi lần ai đó gập máy lại — kênh của bạn tắt, và cứ tắt như vậy cho đến khi bạn phát hiện ra.

Còn một khoản chi phí mà ít người tính đến. Một PC stream bình thường tiêu thụ 150 W sẽ ngốn 108 kWh mỗi tháng. Nhân con số đó với giá điện của bạn để thấy bộ cài đặt "miễn phí" thực ra tốn bao nhiêu. Ở phần lớn châu Âu, con số rơi vào khoảng €20 đến €35 mỗi tháng — chưa tính tiền mua máy, cũng chưa tính việc bạn không thể dùng máy đó vào việc gì khác.

2. Khoảng cách keyframe

Hướng dẫn encoder của chính YouTube yêu cầu một keyframe mỗi 2 giây, và nói rõ không được vượt quá 4 giây. YouTube cũng yêu cầu video H.264, âm thanh AAC và bitrate cố định (constant bitrate).

Phần lớn phần mềm dựng video xuất file với các keyframe cách nhau xa hơn thế nhiều. Nếu bạn đẩy thẳng file như vậy lên YouTube mà không encode lại — đó chính là việc -c copy làm — YouTube vẫn chấp nhận kết nối và báo bạn đang live, trong khi chất lượng phát và thời gian tải ban đầu của người xem bị giảm nặng.

YouTube Studio không cảnh báo gì cả. Bảng điều khiển của bạn trông vẫn hoàn toàn bình thường.

3. Bạn mất bản lưu trữ khi vượt 12 giờ

Điều này khiến nhiều người mất công sức hàng tháng trời, và nó chỉ được ghi trong một dòng trên một trang hỗ trợ không ai đọc.

Trích từ trang trợ giúp của chính YouTube:

"Nếu buổi phát trực tiếp của bạn ngắn hơn 12 giờ, YouTube có thể tự động lưu trữ cho bạn. […] Chúng tôi khuyên bạn nên ghi một bản lưu trữ cục bộ để dự phòng. Lưu ý: Nếu buổi phát của bạn dài hơn 12 giờ, có thể nó sẽ hoàn toàn không được ghi lại."

Một kênh 24/7 không tạo ra VOD nào. Mọi thứ đã phát là mất ngay khi phát xong. Không có thời gian xem tích lũy trên bản lưu trữ, không có lượt tìm kiếm từ các buổi cũ, không có gì để nhà tài trợ xem lại sau này.

Nếu bản lưu trữ quan trọng với bạn, cách khắc phục thực sự duy nhất là kết thúc và khởi động lại buổi phát trước mốc 12 giờ — đó là việc của một đoạn script, không phải của một người lúc 3 giờ sáng.

4. Giới hạn số stream cùng lúc, mới từ 2026

YouTube giờ áp dụng 10 stream đang hoạt động trên mỗi kênh và 3 stream đang hoạt động trên mỗi stream key, cả hai cùng lúc. Nếu bạn chạy nhiều kênh 24/7 từ một key, bạn sẽ chạm giới hạn này.

⚠️ Có hai lưu ý cần nói rõ: theo các báo cáo, giới hạn này chưa được áp dụng cho mọi kênh, và bài viết rõ ràng nhất về những con số này mà chúng tôi tìm được là do một đối thủ cạnh tranh đăng, không phải Google. Hãy coi đây là một ràng buộc cần tính đến khi thiết kế, chứ không phải một con số để trích dẫn.

Không điều nào trong bốn điều trên là quy định về việc phát lặp có được phép hay không. Câu hỏi đó có câu trả lời riêng trên từng nền tảng: kênh phát lại 24/7 có vi phạm quy định không? (bằng tiếng Anh)

Nếu bạn không chỉ gửi lên YouTube, Twitch còn có những điều kiện riêng — trong đó yêu cầu chất lượng ngang nhau (quality parity) là thứ làm hỏng các hệ thống chạy liên tục: stream lên cả ba nền tảng cùng lúc (bằng tiếng Anh).

Còn một lý do thứ năm, và trên kênh nhạc thì đây là lý do dễ xảy ra nhất: nhạc nền. Một vòng lặp phát cùng một bài hàng nghìn lần mà không ai trông — điều đó ảnh hưởng thế nào đến khiếu nại bản quyền (bằng tiếng Anh).


Cách tự chạy, miễn phí

Bạn không cần chúng tôi, và cũng không cần OBS. Đây là những gì thực sự hiệu quả.

Kiểm tra file trước

ffprobe -v error -select_streams v:0 -show_entries frame=key_frame,pts_time \
  -of csv=p=0 -read_intervals "%+#200" yourfile.mp4

Mỗi dòng bắt đầu bằng 1 là một keyframe. Hãy xem khoảng thời gian giữa chúng. Nếu hơn 2 giây thì bạn nên encode lại.

Encode lại theo chuẩn của YouTube

Ở 30fps, một keyframe mỗi 2 giây nghĩa là mỗi 60 khung hình:

ffmpeg -i yourfile.mp4 \
  -c:v libx264 -preset veryfast -b:v 4500k -minrate 4500k -maxrate 4500k \
  -bufsize 9000k -profile:v high -level 4.0 -pix_fmt yuv420p -r 30 \
  -g 60 -keyint_min 60 -sc_threshold 0 \
  -c:a aac -b:a 160k -ar 48000 -ac 2 \
  -movflags +faststart output.mp4

Ở 60fps, dùng -g 120 -keyint_min 120. Quy tắc là tốc độ khung hình × 2.

Ba tham số bitrate bằng nhau cho bạn bitrate cố định, đúng như YouTube yêu cầu. -sc_threshold 0 ngăn ffmpeg chèn thêm keyframe khi chuyển cảnh — chính điều đó làm phá vỡ sự đều đặn mà YouTube muốn.

Phát lặp lên YouTube

Lấy stream key trong YouTube Studio → Go Live → Stream. Sau đó:

ffmpeg -nostdin -stream_loop -1 -re -i output.mp4 \
  -c copy -f flv rtmp://a.rtmp.youtube.com/live2/YOUR_STREAM_KEY

-re đọc file với tốc độ thời gian thực. Không có nó, ffmpeg sẽ gửi nhanh hết mức có thể và YouTube sẽ ngắt kết nối. -stream_loop -1 lặp mãi mãi. -c copy giờ đã an toàn, vì bạn đã sửa keyframe ở bước trước.

Giữ cho nó luôn chạy

while true; do
  ffmpeg -nostdin -stream_loop -1 -re -i output.mp4 \
    -c copy -f flv rtmp://a.rtmp.youtube.com/live2/YOUR_STREAM_KEY
  sleep 5
done

Nếu mất kết nối, ffmpeg thoát ra và vòng lặp khởi động lại nó sau năm giây.

Cách này chạy được. Và đó cũng là lý do bạn vẫn cần một chiếc máy không bao giờ ngủ — và lý do không có gì ở trên sẽ báo cho bạn biết khi nó dừng.


Nếu bạn cũng muốn có bản lưu trữ

Để giữ VOD, buổi phát phải kết thúc và khởi động lại trước 12 giờ. Đại khái:

while true; do
  timeout 42600 ffmpeg -nostdin -stream_loop -1 -re -i output.mp4 \
    -c copy -f flv rtmp://a.rtmp.youtube.com/live2/YOUR_STREAM_KEY
  sleep 10
done

Hãy thành thật với bản thân về sự đánh đổi: mỗi lần khởi động lại là một buổi phát mới, nên số người xem bị đặt lại và ai đang xem sẽ bị ngắt vài giây. Bạn đang chọn giữa một stream liên tục không có bản lưu trữ, hoặc một stream có lưu trữ nhưng khởi động lại hai lần mỗi ngày.


Chúng tôi làm gì

PulseCast chạy vòng lặp từ cloud nên bạn không cần giữ máy nào của riêng mình hoạt động. Tải file lên, dán stream key, xong. Từ tháng 9/2026, PulseCast kiểm tra khoảng cách keyframe của file khi tải lên và encode lại nếu không đúng chuẩn, vì chúng tôi đã học được bài học đắt giá rằng -c copy sẽ vui vẻ gửi đi một stream bị lỗi.

Từ $19/tháng. Gói miễn phí gồm một kênh, 24/7, ở 720p có watermark pulsecast.tv — không giới hạn thời gian, trong khi còn suất miễn phí. Chúng tôi cũng đã đăng một bài so sánh trung thực 12 dịch vụ, gồm cả chúng tôi (bằng tiếng Anh), trong đó nói thẳng chỗ nào đối thủ rẻ hơn chúng tôi.

Nếu bạn cũng dùng Twitch, quy định ở đó hoàn toàn khác — chúng tôi cũng đã viết về điều đó: giới hạn 48 giờ của Twitch (bằng tiếng Anh).

Không có máy tính nào cả? Mọi thứ trên trang này đều giả định bạn có một máy để chạy ffmpeg. Nếu không — nếu bạn chỉ có điện thoại — các bước sẽ khác và ngắn hơn: cách livestream 24/7 trên YouTube từ điện thoại (bằng tiếng Anh).


Nguồn

Cách YouTube lưu trữ và yêu cầu về encoder: YouTube Help, support.google.com, Archive live streams và Choose live encoder settings, bitrates, and resolutions. Giới hạn số stream cùng lúc: do bên thứ ba báo cáo, chưa được xác nhận trên trang nào của Google — xem lưu ý ở trên. Con số tiền điện: 150 W liên tục trong 30 ngày, nhân với giá điện của bạn.

Có gì sai hoặc đã lỗi thời? Hãy báo cho chúng tôi: hello@pulsecast.tv

PulseCast chạy vòng lặp để máy của bạn không phải chạy. Xem giá