एक से ज़्यादा ब्राउज़र पर काम करने के लिए, आपको FFmpeg का इस्तेमाल करके अपनी .mov
फ़ाइल को दो अलग-अलग कंटेनर में बदलना होगा: एक एमपी4 कंटेनर और एक WebM कंटेनर. असल में, आपको एक ही समय पर कोडेक की जानकारी देनी होगी. फ़िलहाल, हम FFmpeg को डिफ़ॉल्ट सेटिंग इस्तेमाल करने की अनुमति दे रहे हैं.
अगर ये कॉन्सेप्ट आपके लिए नए हैं, तो आगे बढ़ने से पहले, मीडिया फ़ाइल के बारे में बुनियादी जानकारी पढ़ें. इसके अलावा, अगर आपने FFmpeg इंस्टॉल नहीं किया है, तो मीडिया ऐप्लिकेशन की बुनियादी बातें पढ़ें ताकि उसे Docker के साथ सेट अप किया जा सके.
हम सुझाए गए Docker इंस्टॉल और
वेब के लिए मीडिया फ़ाइलें तैयार करें की glocken.mov फ़ाइल का इस्तेमाल कर रहे हैं.
यह फ़ाइल media
डायरेक्ट्री में जोड़ी गई है. हमने इस सेक्शन में मौजूद सभी निर्देशों के लिए, 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 पैकेजर का इस्तेमाल करें जैसा कि मीडिया ऐप्लिकेशन की बुनियादी बातें सेक्शन में पहले ही बताया गया है:
/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 | लाइब्रेरी |
---|---|---|
एसीई | MP4 | एसीई |
ओपस | WebM | लिबोपस |
Vorbis | WebM | लिबरबिस |
इसके बाद, हम आपको अपनी नई फ़ाइलों की बिटरेट बदलने का तरीका बताएंगे.