2016-08-07 6 views
7

मेरे पास एक ऐसा काम करने वाला ऐप है जो Chromecast पर वीडियो स्ट्रीम करता है (nannoHttpd का उपयोग करके) और सब कुछ ठीक काम कर रहा है। अब मेरी समस्या यह है कि: नए उपकरणों का उपयोग करके रिकॉर्ड किए गए वीडियो स्ट्रीम करने के आकार में बहुत बड़े हैं, इसलिए मैं कुछ कम बिटरेट में वीडियो को फिर से एन्कोड करना चाहता हूं।बिटरेट और स्ट्रीम को कम करने के लिए ट्रांसकोड वीडियो

मैंने ffmpeg की कोशिश की लेकिन परिणाम संतोषजनक नहीं हैं और यह एपीके आकार 14 एमबी तक बढ़ाएगा।

अब मैं मीडियाकोडेक एपीआई की कोशिश कर रहा हूं। यह ffmpeg से तेज़ है, लेकिन यह इनपुट फ़ाइल लेता है और इसे आउटपुट फ़ाइल में लिखता है और मैं nannohttpd द्वारा सेवा के लिए बाइट डेटा को फिर से एन्कोड करना चाहता हूं।

अब मेरे दिमाग में एक समाधान आता है, जो वीडियो को ट्रांसकोड करना और आउटपुट फ़ाइल स्ट्रीम करना है, लेकिन इसमें दो दोष हैं;

  1. क्या होगा यदि फ़ाइल बहुत बड़ी है और उपयोगकर्ता को पूरा वीडियो नहीं दिखाई देता है? अधिकांश सीपीयू, बैटरी संसाधन बर्बाद हो गया है।
  2. क्या होगा यदि उपयोगकर्ता एक लंबे वीडियो को एक समय तक आगे बढ़ाता है जिसे अभी तक फिर से एन्कोड नहीं किया गया है?
+0

बस चीजों को स्पष्ट करने के लिए: हम पहले से रिकॉर्ड की गई वीडियो स्ट्रीमिंग स्ट्रीमिंग की बात कर रहे हैं, वास्तविक समय अधिग्रहण के करीब कुछ नहीं + सही स्ट्रीमिंग? –

+0

@ जे। जैकोब्स-वीपी हाँ सही – ingsaurabh

उत्तर

1

1 मीडियाकोडेक बस एक चीज़ डीकोड एन्कोड करें! और आपको नए एन्कोडेड डेटा के कच्चे बाइट मिलेगा। तो यह प्रोग्रामर पर निर्भर करता है कि इसे एक मक्सर का उपयोग करके कंटेनर (.mp4 फ़ाइल) में डंप करने का चयन करें। तो सब कुछ वापस फाइल में फिर से लिखने के लिए यहां कोई ज़रूरत नहीं है।

2 डेटा के उचित हिस्से की तलाश करें और MediaCodec को पुनरारंभ करें।

+0

मुझे यह पता है जैसा मैंने अपने प्रश्न में कहा था, लेकिन यह कैसे करें कुछ कोड उपयोगी होगा, जैसे कि कैसे खोजना है – ingsaurabh

संबंधित मुद्दे