कंटेनर और कोडेक

Derek Herman
Derek Herman
Joe Medley
Joe Medley

एक से ज़्यादा ब्राउज़र पर काम करने के लिए, आपको अपना .mov कन्वर्ट करने के लिए FFmpeg का इस्तेमाल करना होगा फ़ाइल को दो अलग-अलग कंटेनर पर अपलोड करना होगा: MP4 कंटेनर और WebM कंटेनर. तय सीमा में तो आप एक ही समय में एक कोडेक तय कर सकते हैं. अभी के लिए, हम FFmpeg को अपनी डिफ़ॉल्ट सेटिंग इस्तेमाल करने दे रहे हैं.

अगर ये कॉन्सेप्ट आपके लिए नए हैं, तो मीडिया फ़ाइल की बुनियादी बातें ज़रूर पढ़ें. इसके अलावा, अगर आपने FFmpeg इंस्टॉल नहीं किया है, तो उसे पढ़ें मीडिया ऐप्लिकेशन की बुनियादी बातें Docker के साथ सेट अप करने के लिए.

हम सुझाए गए Docker इंस्टॉल का इस्तेमाल कर रहे हैं और वेब के लिए मीडिया फ़ाइलें तैयार करें से glocken.mov फ़ाइल media डायरेक्ट्री में जोड़ा गया. हमने सभी कमांड शामिल हैं.

कंटेनर

सबसे पहले, हमें .mov फ़ाइल से, .mp4 के साथ अपने दो कंटेनर बनाने होंगे और .webm फ़ाइल एक्सटेंशन होते हैं. साथ ही, फ़ाइल में ऑडियो और वीडियो स्ट्रीम, दोनों होते हैं. मीडिया फ़ाइल की बुनियादी बातें देखें अगर आपको कंटेनर और स्ट्रीम के बारे में ज़्यादा नहीं पता है, तो उन्हें.

  1. MP4

    /media # ffmpeg -i glocken.mov glocken.mp4
    
  2. WebM

    /media # ffmpeg -i glocken.mov glocken.webm
    

MP4 के मुकाबले, WebM में कॉन्टेंट बनाने में ज़्यादा समय लगता है. जब आप इसे देखें तो कोई चौंकाने वाली बात नहीं है खोजें. हालांकि MP4, ओरिजनल फ़ाइल के करीब 83% तक कंप्रेस हो जाता है WebM साइज़, मूल साइज़ के 78% तक कम हो जाता है, लेकिन उससे काफ़ी छोटा हो सकता है. आपको मिलने वाले नतीजे अलग-अलग होंगे. यह बताना ज़रूरी है कि FFmpeg 4.2.2 ने वीडियो का डिफ़ॉल्ट बिटरेट 200k है. 4.3.2 में, यह डिफ़ॉल्ट बिटरेट नहीं सेट करता. इसलिए, अब यह वीडियो ओरिजनल4% वीडियो का हिस्सा नहीं है. इसे आप खुद देख सकते हैं आपकी मीडिया फ़ाइलें जिस फ़ोल्डर में हैं उसमें ls -a बैश कमांड का इस्तेमाल करके.

उदाहरण के लिए:

/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 और शाका पैकेजर का इस्तेमाल करें, जैसा कि यहां पहले दिखाया गया है मीडिया ऐप्लिकेशन की बुनियादी बातें:

/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4

कोडेक

अगला, कोडेक. जैसा कि मीडिया फ़ाइल की बुनियादी बातों में बताया गया है, एक कोडेक कंटेनर (फ़ाइल टाइप) जैसी चीज़ नहीं होती. एक ही कंटेनर की दो फ़ाइलें टाइप में अलग-अलग कोडेक का इस्तेमाल करके कंप्रेस किए गए डेटा को होल्ड किया जा सकता है. उदाहरण के लिए, WebM फ़ॉर्मैट Vorbis या Opus का इस्तेमाल करके ऑडियो को कोड में बदलने की अनुमति देता है. कोडेक बदलने के लिए हम FFmpeg का इस्तेमाल करें. उदाहरण के लिए, यह निर्देश vorbis ऑडियो के साथ एक .mkv फ़ाइल देता है एक av1 वीडियो कोडेक और कोडेक है.

/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, एमकेवी लिबाओम-एवी1
h264 MP4 libx264
vp9 WebM libvpx-vp9

ऑडियो

कोडेक Extension लाइब्रेरी
एसीई MP4 एसीई
ओपस WebM लिबोपस
Verbis WebM लिबरबिस

इसके बाद, हम आपको नई बनाई गई फ़ाइलों की बिटरेट बदलने का तरीका बताएंगे.