मैं एक पीसी पर एंड्रॉइड मीडियाप्लेयर क्लास (दोनों स्थानीय नेटवर्क पर) पर वीएलसी से लाइव आरटीएसपी धारा खेल रहा हूं। यह बिना किसी त्रुटि के सुचारू रूप से खेलता है - समस्या यह है कि स्क्रीन पर डीकोडेड वीडियो लाइव के पीछे 5 और 7 सेकंड के बीच होता है।लाइव आरटीएसपी स्ट्रीम का डीकोड: एंड्रॉइड पर मीडियाप्लेयर का उपयोग करके बड़े वीडियो अंतराल
डीबग और कॉलबैक से मैं देख सकता हूं कि शुरू करने के बाद डिवाइस < 1s पर लाइव डेटा आ रहा है। यह तब होता है जब मीडियाप्लेयर क्लास काम करना शुरू कर देता है कि स्ट्रीम किस आयाम के साथ है। इत्यादि के बाद स्क्रीन पर वीडियो दिखाए जाने से पहले (5 और 7 सेकंड के बीच), onPrepared()
कहलाता है जहां मैं mMediaPlayer.start()
कहता हूं। ऐसा लगता है कि यह start()
वीडियो चलाता है जिसे मूल रूप से तैयार चरण की शुरुआत से पकड़ा गया था।
मैंने seekTo(5000)
start()
से पहले और बाद में कोशिश की है, लेकिन इसका अंतराल पर कोई प्रभाव नहीं पड़ता है।
लाइव वीडियो कॉलिंग ऐप के लिए, कुछ सेकंड की सेटअप देरी पूरी तरह से ठीक है, लेकिन एक बार वीडियो प्रस्तुत होने के बाद यह अंतराल मेरे लिए अपरिहार्य है।
public void surfaceCreated(SurfaceHolder holder)
{
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.setOnInfoListener(this);
mMediaPlayer.setOnErrorListener(this);
mMediaPlayer.setOnVideoSizeChangedListener(this);
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setDataSource("rtsp://192.168.1.4:5544/test");
mMediaPlayer.setDisplay(holder);
mMediaPlayer.setScreenOnWhilePlaying(true);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnCompletionListener(this);
mMediaPlayer.prepareAsync();
...
public void onPrepared(MediaPlayer mediaplayer)
{
mMediaPlayer.start();
...
कोई विचार मैं इस अंतराल को कैसे कम कर सकता हूं, या मीडियाप्लेयर द्वारा बफर किए गए कार्यों के अंत की तलाश कर सकता हूं? मेरा डिवाइस 3.1 है, minSdkVersion 2.2 है।
संपादित करें:
मैं AwesomePlayer.cpp (2s और 8s) में कुछ उच्च और कम पानी के निशान मिल गया है। एक त्वरित परीक्षण के रूप में मैंने इन 0.1s और 1s बनाने के लिए libstagefright.so हैक किया है। हालांकि इसने देरी पर कोई प्रभाव नहीं डाला। मेरी खोज जारी है ...
एनडीके वी 7 के पास अब निम्न स्तर ओपनमैक्स एएल मीडिया स्ट्रीमिंग एपीआई तक पहुंच है जब स्रोत 4.0 पर एमपीईजी टीएस है। क्या किसी के पास इसका कोई अनुभव है - क्या वीडियो अंतराल में सुधार हुआ है? मैंने दस्तावेज़ों में पढ़ा: "ओपनमैक्स एएल एक देशी सी एपीआई है, ओपनमैक्स एएल को कॉल करने वाले गैर-दलविक एप्लिकेशन थ्रेड्स में कोई दल्विक से संबंधित ओवरहेड नहीं है जैसे कि कचरा संग्रहण विराम। हालांकि, ओपनमैक्स के उपयोग के लिए कोई अतिरिक्त प्रदर्शन लाभ नहीं है इसके अलावा अन्य। विशेष रूप से, ओपनमैक्स एएल के उपयोग से कम ऑडियो या वीडियो विलंबता नहीं होती है ... "ओह ठीक है। – barkside
क्या आप इस पर किए गए प्रगति पर एक अद्यतन देना चाहते हैं? – Matt
अंत में मैंने जीस्ट्रीमर का उपयोग किया (उनके पास अब एंड्रॉइड सपोर्ट है) जो आपको इन चीजों पर बहुत अधिक नियंत्रण देता है ... मुझे पता है कि एक पुलिस आउट ऑफ बिट ... – barkside