वास्तव में H.264 (एक डॉट के साथ) के आसपास बहुत सी गलतफहमी होने लगती है। तो, विकिपीडिया से उद्धृत :
H.264 / MPEG-4 भाग 10 या AVC (उन्नत वीडियो कोडिंग) वीडियो संपीड़न के लिए एक मानक है , और वर्तमान में सबसे अधिक उपयोग किए जाने वाले प्रारूपों में से एक है [...]
यहाँ खींचने के लिए महत्वपूर्ण हिस्सा यह है कि यह केवल एक मानक है । इसका मतलब है कि, वीडियो वास्तव में H.264 के साथ एन्कोडेड नहीं हैं, लेकिन एक कोडेक के साथ जो H.264 मानक को पूरा करता है। सबसे आम लोगों में से एक x264 है (लोअर-केस x, नो डॉट):
X264 H.264 / MPEG-4 AVC प्रारूप में वीडियो स्ट्रीम एन्कोडिंग के लिए एक मुफ्त सॉफ्टवेयर लाइब्रेरी है ।
[...]
X264 अन्य H.264 एनकोडर की तुलना में बड़ी संख्या में सुविधाओं को लागू करता है।
तो, H.264 एक इंटरफ़ेस की तरह है और x264 उस इंटरफ़ेस का एक कार्यान्वयन (वास्तविक कार्यक्षमता के साथ) है।
इसलिए, पाई x264 एन्कोडेड फाइलों को ठीक-ठाक चलाएगी।
फिर कुछ x264 एन्कोडेड फाइलें सुचारू रूप से क्यों नहीं चलती हैं, लेकिन हर 4-6 सेकंड (GPU- राम की मात्रा के आधार पर) को रोकती हैं ?
अधिकांश समय, यह ध्वनि है । चूंकि x264 HD वीडियो फ़ाइलों के लिए एक एनकोडर है, इसलिए अधिकांश फाइलें डिजिटल उच्च-गुणवत्ता वाले साउंड-ट्रैक के साथ आती हैं, जो डीटीएस-कोडेक का उपयोग करती हैं ।
Pi (फिलहाल) DTS-track को हार्डवेयर-डीकोड करने में सक्षम नहीं है और यह CPU पर्याप्त शक्तिशाली नहीं है। आधिकारिक मंचों पर इस बारे में चर्चा चल रही है जो देखने लायक है।
यह पता लगाने के लिए कि क्या आपके लिए यह मामला है, आप mediainfo
-tool का उपयोग कर सकते हैं (अवश्य स्थापित किया जाना चाहिए, पैकेज-नाम आपके मेट्रो पर निर्भर करते हैं:
[tv@raspberry]$ mediainfo some_random_movie.mkv
# Shortened output!
Audio #2
ID : 3
Format : DTS
Format/Info : Digital Theater Systems
Codec ID : A_DTS
अब आपके पास दो विकल्प हैं:
- DTS- सक्षम रिसीवर खरीदें (हो सकता है कि आपका टीवी भी ऐसा कर सकता है?) और Xbmc में "पास-थ्रू" (अंतिम बिंदु) या (जो भी खिलाड़ी आप उपयोग कर रहे हैं) सक्षम करें।
- DTS-Tracks को AC3 में बदलें, जिसे (तेज) या सीपीयू डिकोड किया जा सकता है।
यह पता लगाने के लिए कि आपका रिसीवर (आपके एचडीएमआई-केबल को जिस चीज में प्लग किया गया है) क्या है, tvservice
-tool (जो कि पथ में नहीं है , का उपयोग करें , इसलिए आपको पूर्ण पथ की आवश्यकता होगी):
[tv@raspberry ~]$ /opt/vc/bin/tvservice -a
PCM supported: Max channels: 2, Max samplerate: 48kHz, Max samplesize 24 bits.
AC3 supported: Max channels: 6, Max samplerate: 48kHz, Max rate 640 kb/s.
जैसा कि आप देख सकते हैं, मेरा वर्तमान रिसीवर पीसीएम और एसी 3 (डीटीएस नहीं) को डिकोड करने में सक्षम है।
इस समस्या का मेरा समाधान ऑडियो-ट्रैक्स को DTS AC3 में बदलना है। यहाँ एक छोटा सा लाइनर है जो AC3 में सभी ऑडियो-स्ट्रीम को कनवर्ट infile.mkv
करता है और वीडियो को नहीं छूता है:
ffmpeg :
ffmpeg -i infile.mkv -map 0 -codec:v copy -codec:s copy -codec:a ac3 outfile.mkv
एवोकन :
avconv -i infile.mkv -map 0 -vcodec copy -acodec ac3 -ab 256k outfile.mkv
नोट: उपरोक्त कमांड भी परिणामी AC3 एन्कोडेड ऑडियो-स्ट्रीम के लिए बिट-दर निर्धारित करता है (जो आवश्यक है, ऐसा लगता है)। जबकि 256kbps काफी अच्छा है (अधिकांश डीवीडी का उपयोग 192kbps), आप इसे कम / कम कर सकते हैं।
सौभाग्य से, इसमें लगभग 5 मिनट लगते हैं (आपके हार्डवेयर पर निर्भर करता है)। एक छोटे से बोनस के रूप में, आपकी फ़ाइल छोटी हो जाती है और यदि आप एक ऑडियोफाइल नहीं हैं , तो आपको कोई अंतर नहीं सुनाई देगा।
अभी भी 1080p फुलएचडी मूवीज धमाकेदार हैं , कुछ सेकंड के लिए स्क्रीन बिना किसी आवाज के साथ काली हो जाती है, लेकिन वीडियो-प्लेबैक जारी रहता है। मूवी H.264 AC3 पटरियों के साथ MKV कंटेनर में एन्कोडेड है। समस्या क्या है?
सबसे अधिक संभावना है, फिल्म-फ़ाइल में कुछ भी गलत नहीं है, लेकिन आपकी एक्सबीएमसी सेटिंग्स के साथ। मेरे मामले में, समस्या Xbmc की "ताज़ा दर" थी । यह डिफ़ॉल्ट रूप से 60Hz पर सेट है। 720p और किसी भी अन्य छोटी वीडियो फ़ाइलों के लिए, यह Pi के लिए कोई समस्या नहीं है, लेकिन 1080p फ़ाइलों का परिणाम उपरोक्त समस्या है।
कम ताज़ा दर 60Hz से कम कुछ करने के लिए (कम से कम 24Hz फिल्म के लिए पर्याप्त हैं)। यहां दो विकल्प हैं:
- ग्लोबल एक्सबीएमसी (एक्सबीएमसी सहित):
System -> Settings -> System -> Video output -> Refresh rate
- केवल फिल्में (वीडियो फ़ाइल द्वारा निर्धारित):
System -> Settings -> Video -> Playback -> Adjust display refresh rate to match video
रिफ्रेश रेट कम करने के बाद, 1080p फिल्मों को भी ठीक-ठाक खेलना चाहिए।