Khi tôi nghe về phát trực tuyến lần đầu tiên, đó là trong bối cảnh phát trực tiếp với webcam. Vì vậy, một máy chủ đang phát nội dung video và máy chủ khác đang nhận nội dung video. Vì vậy, là truyền phát này? Chà ... vâng ... nhưng một luồng trực tiếp là một khái niệm cụ thể và tôi nghĩ rằng câu hỏi đề cập đến khái niệm trừu tượng của Truyền phát. Xem https://en.wikipedia.org/wiki/Live_streaming
Vì vậy, hãy tiếp tục.
Video không phải là tài nguyên duy nhất có thể được phát trực tuyến. Âm thanh có thể được truyền phát quá. Vì vậy, bây giờ chúng ta đang nói về phương tiện truyền thông trực tuyến. Xem https://en.wikipedia.org/wiki/Streaming_media . Âm thanh có thể được truyền từ nguồn đến đích theo nhiều cách. Vì vậy, hãy so sánh một số phương pháp phân phối dữ liệu với nhau.
Tải xuống tệp cổ điển Tải xuống tệp
cổ điển không xảy ra theo thời gian thực. Trước khi lấy tệp để sử dụng, bạn sẽ phải đợi cho đến khi quá trình tải xuống hoàn tất.
Tải xuống
lũy tiến Tải xuống lũy tiến dữ liệu tải xuống từ tệp phương tiện truyền phát trực tuyến vào bộ đệm tạm thời. Dữ liệu trong bộ đệm đó hoàn toàn khả thi: dữ liệu âm thanh-video trong bộ đệm có thể phát được. Do đó, người dùng có thể xem / nghe tệp phương tiện truyền phát trong khi tải xuống. Chuyển tiếp nhanh và tua lại là có thể, ngoại trừ bộ đệm. Dù sao, tải xuống lũy tiến không phải là phát trực tiếp.
Truyền trực tuyến
xảy ra thời gian thực và dữ liệu khối. Truyền phát được thực hiện trong các chương trình phát sóng trực tiếp. Khách hàng nghe chương trình phát sóng không thể chuyển tiếp nhanh hoặc tua lại. Trong các luồng video, dữ liệu bị loại bỏ sau khi phát lại.
Máy chủ phát trực tuyến giữ kết nối 2 chiều với máy khách của nó, trong khi Máy chủ Web đóng kết nối sau khi máy chủ phản hồi.
Âm thanh và video không phải là thứ duy nhất có thể phát trực tuyến. Chúng ta hãy xem khái niệm về các luồng trong hướng dẫn PHP.
một luồng là một đối tượng tài nguyên thể hiện hành vi có thể truyền phát. Đó là, nó có thể được đọc từ hoặc được viết theo kiểu tuyến tính và có thể chuyển fseek () đến một vị trí tùy ý trong luồng. Liên kết: https://www.php.net/manual/en/intro.stream.php
Trong PHP, một tài nguyên là một tham chiếu đến một nguồn bên ngoài như một tệp, kết nối cơ sở dữ liệu. Vì vậy, nói cách khác, một luồng là một nguồn có thể được đọc từ hoặc ghi vào. Vì vậy, nếu bạn đã làm việc với fopen()
, thì bạn đã làm việc với các luồng.
Một ví dụ về tệp văn bản chịu sự truyền phát:
// Let's say that cheese.txt is a file that contains this content:
// I like cheese, a lot! My favorite cheese brand is Leerdammer.
$fp = fopen('cheese.txt', 'r');
$str8 = fread($fp, 8); // read first 8 characters from stream.
fseek($fp, 21); // set position indicator from stream at the 21th position (0 = first position)
$str30 = fread($fp, 30); // read 30 characters from stream
echo $str8; // Output: I like c
echo $str30; // Output: My favorite cheese brand is L
Tập tin zip có thể được truyền phát quá. Trên hết, phát trực tuyến không giới hạn các tệp. Kết nối HTTP, FTP, SSH và Đầu vào / Đầu ra cũng có thể được truyền phát.
Wikipedia nói gì về khái niệm Truyền phát?
Trong khoa học máy tính, một luồng là một chuỗi các yếu tố dữ liệu được tạo sẵn theo thời gian. Một luồng có thể được coi là các mục trên băng chuyền đang được xử lý cùng một lúc thay vì theo lô lớn.
Xem: https://en.wikipedia.org/wiki/Stream_%28computing%29 .
Wikipedia liên kết đến đây: https://srfi.schemers.org/srfi-41/srfi-41.html
và các nhà văn có điều này để nói về các luồng:
Các luồng, đôi khi được gọi là danh sách lười biếng, là một cấu trúc dữ liệu tuần tự chứa các phần tử chỉ được tính toán theo yêu cầu. Một luồng là null hoặc là một cặp với một luồng trong cdr của nó. Vì các phần tử của một luồng chỉ được tính khi truy cập, các luồng có thể là vô hạn.
Vì vậy, một luồng thực sự là một cấu trúc dữ liệu.
Kết luận của tôi: một luồng là một nguồn có thể chứa dữ liệu có thể được đọc từ hoặc ghi vào một cách tuần tự. Một luồng không đọc mọi thứ mà nguồn chứa cùng một lúc, nó đọc / ghi tuần tự.
Liên kết hữu ích:
- http://www.sl slideshoware.net/auroraeosrose/writer-and-USE-php-streams-and-sockets-zendcon-2011 Cung cấp một bản trình bày rất rõ ràng
- https://www.sk89q.com/2010/04/intributiontion-to-php-streams/
- http://www.netlingo.com/word/stream-or-streaming.php
- http://www.brainbell.com/tutorials/php/Using_PHP_Streams.htm
- http://www.sitepoint.com/php-streaming-output-buffering-explained/
- http://php.net/manual/en/wrappers.php
- http://www.digidata-lb.com/streaming/Streaming_Proposal.pdf
- http://www.webopedia.com/TERM/S/streaming.html
- https://en.wikipedia.org/wiki/Stream_%28computing%29
- https://srfi.schemers.org/srfi-41/srfi-41.html