2009-03-01 34 views
6

Tôi đang xây dựng một trang web video trực tuyến. Ý tưởng là khách hàng phải trả tiền cho tư cách thành viên, đăng nhập vào hệ thống và có thể xem video. Tôi sẽ theo dõi FlowPlayer để hiển thị các video thực tế.Làm cách nào để phân phát tệp .flv bằng PHP?

Vấn đề bây giờ là, các video cần phải được lưu trữ ở nơi nào đó công khai và url đến tệp .flv cần được chuyển tới trình tạo luồng để có thể hiển thị chúng. Điều này tạo ra sự cố vì bất kỳ ai cũng có thể làm nguồn xem, tải xuống video và phân phối tất cả trên internet.

Tôi biết một số người phục vụ hình ảnh sử dụng php bằng cách thực hiện một hình ảnh header() và sau đó họ có thể làm một cái gì đó như:

<img src="image.php?userId=1828&img=test.gif" /> 

Các kịch bản php xác nhận ID người dùng và phục vụ lên .gif và url thực tế của gif không bao giờ được tiết lộ.

Có cách nào để thực hiện việc này với .flv hoặc bất kỳ định dạng video nào khác không? Ví dụ: tệp và ID người dùng được chuyển vào tập lệnh PHP, nó xác nhận chúng và trả về video?

+1

không liên quan sang một bên: HTML-thoát: phải là "src =" image.php? UserId = 1828 & img = test.gif "". – bobince

Trả lời

5

Bạn có thể thiết lập một thư mục chứa các tập tin FLV trên máy chủ web của bạn mà chỉ có thể được truy cập bằng PHP, sau đó trong kịch bản PHP của bạn, bạn có thể xác thực người sử dụng như bình thường và chỉ cần gửi một tiêu đề cho trình duyệt nói cho nó để mong đợi một FLV, sau đó echo dữ liệu FLV liệu:

<?php 
// here is where 
// you want your 
// user authentication 

if ($isAuthenticated) 
{ 
    header("Content-type: video/flv"); 
    echo file_get_contents($pathToFLV); 
} 
?> 

như Chad Birch thảo luận , điều này sẽ chỉ ngăn mọi người liên kết trực tiếp với video - bạn không thể ngăn chặn vi phạm bản quyền theo cách này.

+1

Tất nhiên, điều này sẽ không ngăn người khác giật các video khi trình phát luồng hiển thị. Nhưng tôi đoán nó sẽ làm xáo trộn nó theo cách mà cha mẹ dường như muốn. – Tuxmentat

+0

Tôi dự định sử dụng hệ thống bán vé, vì vậy mỗi khi họ nhấp vào video trên trang web của tôi, nó sẽ tạo ID vé một lần sử dụng và chuyển mã này cho tập lệnh phân phát flv. –

+0

mỗi ID vé chỉ có thể được sử dụng một lần. Ngay sau khi nó nhận được và xác thực bởi kịch bản phục vụ flv, nó xóa nó để nó không thể được sử dụng nữa. Làm thế nào họ sẽ cướp biển nó với hệ thống này? –

3

Câu trả lời ngắn gọn là không, bạn sẽ không bao giờ có thể ngăn mọi người tải xuống video của bạn nếu họ muốn. Có nhiều cách khác nhau để làm cho nó khó khăn hơn cho họ để làm điều đó, nhưng không có phương pháp dễ dàng. Bạn đang nhấn về cơ bản toàn bộ vấn đề với DRM - bạn không thể hiển thị cho ai đó nội dung của bạn mà không đưa nó cho họ không được mã hóa tại một số thời điểm và nếu họ có thể xem nó, họ có thể trích xuất nội dung đó.

+0

Ý tưởng của tôi là url được sử dụng để tải xuống sẽ không sử dụng được vào lần tiếp theo khi thử. I. Mỗi url chỉ có thể được sử dụng một lần. Làm thế nào họ sẽ tải về nó trong trường hợp này? –

+0

Chỉ một lần - phát tệp trong trình phát của bạn, đồng thời thu thập các gói bạn đang gửi và lưu dữ liệu vào đĩa. – Piskvor

+0

Điều tốt nhất bạn có thể làm là mong đợi chặn người mới tải video trực tiếp xuống nhưng cho phép tin tặc hoặc những người có công cụ phù hợp tải xuống video. Youtube cũng vậy.Xét cho cùng, nếu video hiển thị trên màn hình của người dùng, họ đã tải xuống video theo cách này hay cách khác. – Petruza

0

Vì trình phát flv của bạn là một ứng dụng flash, bạn sẽ luôn có thể tải xuống và dịch ngược nó. Khi dịch ngược url thực sự thành flv sẽ hiển thị. Vì vậy, nó sẽ không thực sự thực hiện bất kỳ sự khác biệt nếu bạn đang sử dụng của trực tiếp url xem phim flv hoặc một cái gì đó giống như bạn mô tả trong câu hỏi của bạn

<img src="image.php?userId=1828&img=test.gif" /> 
0

hãy google từ pseudostreaming bạn sẽ nhận được câu trả lời Có một số máy chủ như lighttpd trong đó có hỗ trợ vốn cho flv trực tuyến ....

tôi hy vọng bạn sẽ nhận được câu trả lời ... ......

0

Apache với mod_flvx cũng có hiệu ứng tương tự như lighttpd.

Các vấn đề liên quan