एक से ज़्यादा ब्राउज़र पर काम करने के लिए, आपको FFmpeg का इस्तेमाल करके अपनी .mov
फ़ाइल को दो अलग-अलग कंटेनर में बदलना होगा: एक एमपी4 कंटेनर और एक WebM कंटेनर. असल में, आपको एक ही समय पर कोडेक की जानकारी देनी होगी. फ़िलहाल, हम FFmpeg को डिफ़ॉल्ट सेटिंग का इस्तेमाल करने की अनुमति दे रहे हैं.
अगर ये कॉन्सेप्ट आपके लिए नए हैं, तो आगे बढ़ने से पहले, मीडिया फ़ाइल के बारे में बुनियादी जानकारी पढ़ें. इसके अलावा, अगर आपने FFmpeg इंस्टॉल नहीं किया है, तो इसे Docker के साथ सेट अप करने के लिए, मीडिया ऐप्लिकेशन के बुनियादी सिद्धांत पढ़ें.
हम सुझाए गए Docker इंस्टॉल का इस्तेमाल कर रहे हैं और media डायरेक्ट्री में जोड़ी गई वेब के लिए मीडिया फ़ाइलें तैयार करें से glocken.mov फ़ाइल का इस्तेमाल कर रहे हैं. हमने इस सेक्शन में मौजूद सभी निर्देशों के लिए, FFmpeg के 4.3.2 वर्शन का इस्तेमाल किया है.
कंटेनर
सबसे पहले, हमें .mov फ़ाइल से दो कंटेनर बनाने होंगे. ये कंटेनर, .mp4 और .webm फ़ाइल एक्सटेंशन वाले होने चाहिए. साथ ही, इनमें फ़ाइल के अंदर ऑडियो और वीडियो स्ट्रीम, दोनों होनी चाहिए.
अगर आपको कंटेनर और स्ट्रीम के बीच के अंतर के बारे में नहीं पता है, तो मीडिया फ़ाइल की बुनियादी बातें पढ़ें.
- MP4 - /media # ffmpeg -i glocken.mov glocken.mp4
- WebM - /media # ffmpeg -i glocken.mov glocken.webm
WebM फ़ॉर्मैट में वीडियो बनाने में, एमपी4 फ़ॉर्मैट से ज़्यादा समय लगता है. नतीजों को देखते हुए, इसमें कोई हैरानी नहीं है. MP4 फ़ॉर्मैट में, मूल फ़ाइल का साइज़ 83% तक कंप्रेस हो जाता है. वहीं, WebM फ़ॉर्मैट में, मूल फ़ाइल का साइज़ 78% तक कंप्रेस हो जाता है. हालांकि, यह साइज़ इससे भी कम हो सकता है.
आपके नतीजे अलग-अलग होंगे. यह बताना ज़रूरी है कि FFmpeg 4.2.2 में डिफ़ॉल्ट वीडियो बिटरेट को 200k पर सेट किया गया है और 4.3.2 में डिफ़ॉल्ट बिटरेट सेट नहीं किया गया है.
इसलिए, वीडियो अब ओरिजनल वीडियो का सिर्फ़4% हिस्सा नहीं है. यह देखने के लिए, मीडिया फ़ाइलों वाले फ़ोल्डर में ls -a bash कमांड का इस्तेमाल करें.
उदाहरण के लिए:
/media # ls -l
-rw-r--r-- 1 root  root  12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root  root  10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root  root   9503301 Mar 7 18:30 glocken.webm
छोटी फ़ाइल पाने के लिए, यह तरीका अपनाएं:
/media # ffmpeg -i glocken.mov -b:v 200k glocken.webm
...
frame=  300 fps=3.6 q=0.0 Lsize=     483kB time=00:00:10.01 bitrate= 395.0kbits/s speed=0.121x
video:359kB audio:117kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.356068%
/media # ls -l
-rw-r--r-- 1 root  root  12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root  root  10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root  root    494497 Mar 7 18:45 glocken.webm
अपना काम देखना
अपने नतीजों की पुष्टि करने के लिए, FFmpeg और Shaka Packager का इस्तेमाल करें. इनके बारे में मीडिया ऐप्लिकेशन की बुनियादी बातें में पहले ही बताया गया है:
/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4
कोडेक
अगला कॉन्टेंट कोडेक है. मीडिया फ़ाइल की बुनियादी बातें में बताया गया है कि कोडेक और कंटेनर (फ़ाइल टाइप) एक ही चीज़ नहीं हैं. एक ही कंटेनर टाइप की दो फ़ाइलों में, अलग-अलग कोडेक का इस्तेमाल करके कंप्रेस किया गया डेटा हो सकता है. उदाहरण के लिए, WebM फ़ॉर्मैट में Vorbis या Opus का इस्तेमाल करके ऑडियो को एन्कोड किया जा सकता है. कोडेक बदलने के लिए, हम FFmpeg का इस्तेमाल करते हैं. उदाहरण के लिए, यह कमांड vorbis ऑडियो कोडेक और av1 वीडियो कोडेक वाली .mkv फ़ाइल को आउटपुट करता है.
/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv
इस उदाहरण में, -c:a फ़्लैग और -c:v, ऑडियो और वीडियो कोडेक के बारे में बताने के लिए हैं.
मीडिया कन्वर्ज़न पेज पर, कोडेक बदलने के लिए ज़रूरी निर्देशों की सूची दी गई है. नीचे दी गई टेबल में, FFmpeg में इस्तेमाल की गई लाइब्रेरी के बारे में खास जानकारी दी गई है. इन लाइब्रेरी का इस्तेमाल, WebM और MP4 फ़ाइलों के लिए कोडेक कन्वर्ज़न करने के लिए किया जाता है. ये DASH और HLS के लिए सुझाए गए फ़ॉर्मैट हैं.
वीडियो
| कोडेक | Extension | लाइब्रेरी | 
|---|---|---|
| av1 | WebM, mkv | libaom-av1 | 
| h264 | MP4 | libx264 | 
| vp9 | WebM | libvpx-vp9 | 
ऑडियो
| कोडेक | Extension | लाइब्रेरी | 
|---|---|---|
| aac | MP4 | aac | 
| opus | WebM | libopus | 
| vorbis | WebM | libvorbis | 
इसके बाद, हम आपको अपनी नई फ़ाइलों की बिटरेट बदलने का तरीका बताएंगे.
 
 
        
        