एक से ज़्यादा ब्राउज़र पर काम करने के लिए, आपको 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 |
इसके बाद, हम आपको अपनी नई फ़ाइलों की बिटरेट बदलने का तरीका बताएंगे.