अद्यतन: यह अब कैसे वीडियो अगर स्ट्रीमिंग सुरक्षा के कुछ स्तर देने के लिए पर एक ट्यूटोरियल है: अपाचे
2) यदि आप उन नहीं करना चाहती के साथ
1) आप Flowplayer उपयोग कर रहे हैं वीडियो (केवल स्ट्रीमिंग)
3) यदि आप उन ब्राउज़र में वीडियो का URL डाल करने के लिए (सीमित पहुँच वीडियो)
4) आप केवल उन में सक्षम होना चाहते सक्षम होने के लिए नहीं करना चाहती डाउनलोड करने के लिए सक्षम होने के लिए वीडियो स्ट्रीम करने के अगर वे उचित क्रेडेंशियल्सFlowplayer स्ट्रीमिंग सुरक्षित
आप पीएचपीको पहले से जानकारी होना आवश्यक है हैऔर .htaccess फ़ाइलें।
मूल पोस्ट:
मेरे ग्राहक अपने वीडियो छिपा इतना है कि वे जब तक वे अपने डोमेन पर खरीदे जाते हैं (वह उन या तो वीडियो डाउनलोड करने के लिए सक्षम होने के लिए नहीं चाहता है) स्ट्रीम नहीं किया जा सकता है चाहता है। मैं फ्लोप्लेयर की सुरक्षित स्ट्रीमिंग के साथ ऐसा करने की कोशिश कर रहा हूं और मुझे लगता है कि मैं लगभग 9 वर्ष का हूं!)। हर जगह खोजने के बाद मुझे this post मिला।
मैं .htaccess के माध्यम से अन्य साइटों अब मैं किसी को सिर्फ यूआरएल को कॉपी करके उपयोग को सीमित करने के लिए कोशिश कर रहा हूँ और पता बार में यह पेस्ट करके गर्म जोड़ने पर पाबंदी लगा रखी (यानी http://www.mydomain.com/videos/testVideo.mov)
मैं का उपयोग किया है PHP/AJAX के इस HTML (सबसे उदाहरण बाहर वहाँ जे एस Flowplayer प्लगइन का उपयोग करें, मैं <object>
टैग का उपयोग कर रहा खिलाड़ी एम्बेड करने के लिए, कोई जे एस शामिल किया गया। उत्पन्न करने के लिए आप जे एस प्लगइन, उपयोग का उपयोग करते हैं कि बजाय एम्बेडेड संस्करण की, .htaccess फाइल और video.php फ़ाइल एक ही हो जाएगा।)
$videofilename = 'testVideo.mov';
$hash = md5('1234');
$timestamp = time();
$videoPath = $hash.'/'.$timestamp.'/'.$videofilename;
echo '
<object width="667" height="375" type="application/x-shockwave-flash" data="http://releases.flowplayer.org/swf/flowplayer-3.2.8.swf">
<param name="wmode" value="transparent"/>
<param name="movie" value="../swf/flowplayer.securestreaming-3.2.8.swf" />
<param name="allowfullscreen" value="true" />
<param name="timestamp" value="'.$timestamp.'" />
<param name="token" value="'.$hash.'" />
<param name="streamName" value="'.$videofilename.'" />
<param name="flashvars" value=\'config={
"playlist":[
{"url": "'.$videoPath.'", "baseUrl": "http://www.mydomain.com/videos", "autoPlay":false,"autoBuffering":true,"bufferLength":5}
]
}\' />
</object>';
अब निर्देशिकामें RewriteEngine on
RewriteRule ^(.*)/(.*)/(.*)$ http://www.mydomain.com/vidoeos/video.php?h=$1&t=$2&v=$3
RewriteRule ^$ - [F]
RewriteRule ^[^/]+\.(mov|mp4)$ - [F]
अपडेट:: php फ़ाइल के प्रयोजन के 1 करने के लिए है) डेटा हैश, टाइमस्टैम्प, और वीडियो फ़ाइल नाम (test.mov या जो कुछ भी मिलता है) मैं इस .htaccess फाइल डाल 2) यकीन है कि सब कुछ बाहर की जाँच करता है बनाएँ (मैं जानबूझकर लंबाई के लिए इस उदाहरण में सुरक्षा जांच लोप) और 3) Flowplayer अपने वीडियो की धारा दे। सुनिश्चित करें कि $originaltimestamp
और $hash
पहुँच देने से पहले अच्छा कर रहे हैं। आप सत्र प्रमाण-पत्रों की जांच भी कर सकते हैं, किसी डेटाबेस से 'असली' फ़ाइल स्थान प्राप्त कर सकते हैं, या उपयोगकर्ता पहुंच प्रदान करने से पहले किसी भी प्रकार की PHP सुरक्षा जांच कर सकते हैं।
इसके अलावा तो यह सही फाइल एक्सटेंशन के साथ संबद्ध Content-type:
क्षेत्र बदलने के लिए (यानी video/mp4
अगर वीडियो एक * .mp4 है)
और videos/video.php
इस तरह दिखता है याद रखें:
<?php
session_start();
$hash = $_GET['h'];
$streamname = $_GET['v'];
$originaltimestamp = $_GET['t'];
header('Content-Description: File Transfer');
header('Content-type: video/quicktime');
header("Content-length: " . filesize($streamname));
header("Expires: 0");
header("Content-Transfer-Encoding: binary");
$file = fopen($streamname, 'r');
echo stream_get_contents($file);
fclose($file);
?>
तीन फ़ाइलें कुल, एचटीएमएल प्लेयर के साथ, .htaccess फ़ाइल और आखिरकार video.php फ़ाइल। मेरी मूल समस्या $streamname
गलत थी। याद रखें $streamname
बेसयूआरएल के बाद (या नीचे) फ़ाइल स्थान होना चाहिए। उम्मीद है कि यह मेरे जैसे किसी की मदद करता है!
कोई भी इस तरह से सुरक्षा मुद्दों को देखता है?
** अद्यतन: इस कोड के साथ Flowplayer-3.2.8.swf का प्रयोग न करें ** का उपयोग करें Flowplayer-3.2.7।। flowplayer.controls-3.2.5.swf के साथ swf। यदि आप फ्लोप्लेयर-3.2.8.swf का उपयोग करते हैं, तो यह केवल क्रोम में काम करेगा, एफएफ, सफारी या आईई (9) – phpKid
** अपडेट नहीं: आप फ्लोप्लेयर-3.2.8 ** का उपयोग कर सकते हैं ** बस सुनिश्चित करें कि आपके पास नवीनतम है फ्लैश का संस्करण! (मेरा बुरा) – phpKid
क्या फ्लो प्लेयर एचटीएमएल 5 प्लेयर के साथ यह वही तकनीक संभव है ?? – Wikki