HTML5-संगत "हर किसी के लिए वीडियो" प्राप्त करने के लिए मुझे ffmpeg स्क्रिप्ट का कौन सा गुच्छा चाहिए?


12

सभी लोगों के लिए वीडियो का उपयोग करने के लिए सभी सही प्रारूपों में एक वीडियो प्राप्त करने के लिए मुझे ffmpeg / mencoder / some_other_CLI_app में कमांड की क्या सूची चाहिए ?

यानी क्या कोई सूक्ष्मता है जो वहाँ एक यांत्रिक ट्यूटोरियल होने से रोकती है जो कहती है

VIDEO=video.mp4
TYPE=$(ffmpeg --find-information-about-the-video ... )
ffmpeg ... > video.mov
ffmpeg ... > video.flv
ffmpeg ... > video.webm
ffmpeg ... > video.h.264
...

फिर अपने पेज में हर किसी के लिए वीडियो कॉपी और पेस्ट करें?

मेरा लक्ष्य मेरे द्वारा होस्ट किए गए मेरे निजी वेबपेज में एक एम्बेडेड वीडियो है। फ्लैशबैकबैक के साथ एचटीएमएल 5 को प्राथमिकता दी जाती है, इसलिए सबसे सरल तरीका हर किसी के लिए वीडियो है। लेकिन वह पेज सबसे जटिल हिस्सा छोड़ देता है, वीडियो को सभी अलग-अलग प्रारूपों में एन्कोडिंग करता है, पाठक को वीडियो प्रारूपों के बारे में एक लंबा और पूरा लेख पढ़कर पता लगाने के लिए । निश्चित रूप से यह आवश्यक नहीं है। मैं किसी उपयोगकर्ता के लिए अलग-अलग स्वरूपों के झुंड में ऑडियो फ़ाइल को नेत्रहीन रूप से परिवर्तित करने के लिए आदेशों की एक सूची प्रदान कर सकता हूं। उम्मीद है कि एक ffmpeg गुरु वीडियो के लिए भी ऐसा कर सकता है।


1
अपने छद्मकोड उदाहरणों के लिए मामूली टिप्पणी: .movएचटीएमएल 5 वीडियो के लिए कोई नहीं है , और कोई h.264विस्तार भी नहीं है। वहाँ है .264 , जो एनएएल इकाइयों के लिए कच्चे अनुलग्नक बी बायस्ट्रीम है। वीडियो एन्कोडिंग कोई रॉकेट साइंस नहीं है, लेकिन आपको अवधारणाओं को जानने के लिए थोड़ा समय निवेश करने की आवश्यकता है।
'16

जवाबों:


21

नोट: यह उत्तर इसकी मूल पोस्टिंग से काफी हद तक संपादित किया गया था। अभी 2017 है; स्ट्रीमिंग अलग तरह से काम करती थी, जितना कि यह करती थी। यह मार्गदर्शिका किसी दिए गए संकल्प पर एक वीडियो स्ट्रीम के सरल प्रगतिशील डाउनलोड को मानती है - कोई अनुकूली स्ट्रीमिंग नहीं।

आवश्यकताएँ

सबसे पहले, हाल के ffmpegसंस्करण को डाउनलोड करना सुनिश्चित करें (एक स्थिर बिल्ड डाउनलोड करें; कॉल apt-get install ffmpegया समान न करें )। आदर्श रूप से, इसे स्वयं संकलित करें । यह बहुत लंबा नहीं है।

अधिकांश ब्राउज़रों द्वारा समर्थित वीडियो बनाने के लिए, हमेशा नवीनतम संगतता तालिका देखें । हर ब्राउज़र में काम करने वाला एक भी कोडेक / फॉर्मेट नहीं है, लेकिन अगर आप संबंधित ऑडियो कोडेक के साथ MP4 और WebM में VP9 में H.264 जेनरेट करते हैं, तो आपके पास क्रोम, फ़ायरफ़ॉक्स, सफारी और IE के कुछ संस्करणों के लिए समर्थन होगा।

WebM (VP9 / Vorbis)

FFmpeg VP9 गाइड में सिफारिशों का पालन करें और दर की कमी के साथ दो-पास एन्कोडिंग दृष्टिकोण का उपयोग करें:

ffmpeg -y -i input-c:v libvpx-vp9 -b:v 2000k -minrate 500k -maxrate 2500k -c:a libvorbis -pass 1 -f webm /dev/null && \
ffmpeg -i input-c:v libvpx-vp9 -b:v 2000k -minrate 500k -maxrate 2500k -c:a libvorbis -pass 2 output.webm

लक्ष्य बिटरेट आपके रिज़ॉल्यूशन, फ्रेम दर, सामग्री के प्रकार और आप किस गुणवत्ता पर चाहते हैं, पर निर्भर करता है। 2.5 एमबीटी / एस 30 एफपीएस पर एचडी वीडियो के लिए एक अच्छा समझौता होना चाहिए। कुछ सिफारिशों के लिए यह Google मार्गदर्शिका देखें ।

MP4 (H.264 / AAC)

FFmpeg H.264 गाइड में सिफारिशों का पालन करें और दर बाधाओं के साथ दो-पास एन्कोडिंग दृष्टिकोण का उपयोग करें:

ffmpeg -y -i input -c:v libx264 -b:v 5000k -minrate 1000k -maxrate 8000k -pass 1 -c:a aac -f mp4 /dev/null && \
ffmpeg -i input -c:v libx264 -b:v 5000k -minrate 1000k -maxrate 8000k -pass 2 -c:a aac -movflags faststart output.mp4

यहाँ, लक्ष्य बिटरेट VP9 वीडियो की तुलना में लगभग 50% अधिक होना चाहिए, क्योंकि H.264 उतना कुशल नहीं है। -movflags faststartवीडियो को जल्दी लोड करने के लिए दूसरे पास का विकल्प जोड़ें ।

ऑडियो विकल्प सेट करने के लिए, AAC एन्कोडिंग गाइड देखें


1
आपके किसी अनुच्छेद का 2013-12-19 का संस्करण मध्य-वाक्य में कट जाता है। "ऑडियो 128 kBit / s पर फिर से डिफॉल्ट करता है, लेकिन आप q को सेट कर सकते हैं: एक वैरिएबल बिटरेट के लिए, जहां मान 0 से 500 तक होते हैं। 100 डिफ़ॉल्ट और उच्चतर का मतलब बेहतर है। यदि"
एलन डे स्मेट

@ एसएलएचके बहुत मायने रखता है, लेकिन मेरे दो सेंट हैं कि आप ओग को छोड़ दें और इसे सभी आईओएस डिवाइस या एचएलएस को स्वीकार करने वाले समर्थन के लिए एमपीईजी / एम 3 यू 8 से बदल दें। आप .mp4 फ़ाइलों का पुन: उपयोग कर सकते हैं और ffmpeg में mpeg-ts प्रसंस्करण जोड़ सकते हैं।
पॉल ग्रेगोइरे

@ मॉन्डेन वास्तव में, लेकिन MPEG-TS / .m3u8 आमतौर पर HTML5- संगत वीडियो नहीं है। आपको एचएलएस सर्वर की आवश्यकता है और आपको स्ट्रीमिंग के बारे में थोड़ा और जानने की जरूरत है, जो वास्तव में इस प्रश्न के दायरे में नहीं है।
slhck

अच्छे अंक, लेकिन मेरे अनुभव से इस प्रकार अब तक एक सरल http सर्वर m3u8 को वीडियो टैग में सेवा दे सकता है। केवल एक चीज जो आम तौर पर करने की आवश्यकता होती है वह है m3u8 के लिए माइम प्रकार जोड़ना और संबंधित सर्वर कॉन्फ़िगरेशन के लिए ts।
पॉल ग्रेगोइरे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.