मुझे आरटीएसपी पर H.264 वीडियो स्ट्रीमिंग में कुछ परेशानी हो रही है। लक्ष्य एक आरटीएसपी क्लाइंट (आदर्श रूप से अंत में एक ब्राउज़र प्लगइन) में कैमरा छवि को लाइव स्ट्रीम करना है। यह एक समस्या को छोड़कर अब तक बहुत अच्छी तरह से काम कर रहा है: वीडियो स्टार्टअप पर अंतराल होगा, हर कुछ सेकंड में स्टटर होगा, और इसमें ~ 4-सेकंड की देरी होगी। ये गलत है।स्ट्रीमिंग आरटीपी/आरटीएसपी: सिंक/टाइमस्टैम्प समस्याएं
हमारा सेटअप x264 (w/zerolatency & अल्ट्राफास्ट) के साथ एन्कोड करना है और ffmpeg 0.6.5 से libavformat के साथ RTSP/RTP में पैक किया गया है। परीक्षण के लिए, मुझे एक आरटीएसपी सर्वर से कनेक्ट करते समय जीएसटी-लॉन्च के साथ एक जीस्ट्रीमर पाइपलाइन के साथ स्ट्रीम प्राप्त हो रही है। हालांकि, मैं एक ही समस्या को फिर से उत्पन्न करने में सक्षम हूं जब सीधे किसी अन्य जीस्ट्रीमर इंस्टेंस से आरटीपी के साथ स्ट्रीमिंग करता हूं।
भेजा जा रहा है मशीन:
gst-launch videotestsrc ! x264enc tune=zerolatency ! rtph264pay ! udpsink host=10.89.6.3
प्राप्त मशीन:
gst-launch udpsrc ! application/x-rtp,payload=96 ! rtph264depay ! decodebin ! xvimagesink
तुम भी दोनों एक ही मशीन पर इन चला सकते हैं, बस इस पर 127.0.0.1 के लिए मेजबान बदल जाते हैं।
WARNING: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(2875): gst_base_sink_is_too_late(): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0:
There may be a timestamping problem, or this computer is too slow.
एक सामान्य रूप से सुझाव दिया "ठीक" है कि मैं इंटरनेट पर देखा है है उपयोग करने के लिए: प्राप्त अंत पर, आप हकलाना और कंसोल पर कई बार चेतावनी के साथ आम तौर पर खराब प्रदर्शन करने वीडियो, के साथ नोटिस देना चाहिए xvimagesink साथ sync=false
:
gst-launch udpsrc ! application/x-rtp,payload=96 ! rtph264depay ! decodebin ! xvimagesink sync=false
वीडियो तो लगभग शून्य विलंबता के साथ वापस खेलेंगे, तब भी जब हमारे कैमरे सॉफ्टवेयर के साथ परीक्षण किया गया। यह परीक्षण के लिए उपयोगी है, लेकिन तैनाती के लिए बहुत उपयोगी नहीं है, क्योंकि यह टोटेम, वीएलसी, या उनके ब्राउज़र प्लगइन एम्बेड के साथ काम नहीं करेगा।
मैं इस मुद्दे को हल करने का प्रयास करना चाहता हूं; मुझे संदेह है कि एच 264 स्ट्रीम पर x264 या शायद आरटीपी पेलोड पर किसी प्रकार की टाइमस्टैम्प जानकारी गायब है। स्रोत जीएसटी पाइपलाइन को संशोधित करने का कोई तरीका है ताकि मैं को sync=false
रिसीवर पर उपयोग करने की आवश्यकता हो?
यदि यह संभव नहीं है, तो मैं ग्राहकों को कैसे बता सकता हूं (एसडीपी या अन्यथा के माध्यम से) कि स्ट्रीम को सिंक्रनाइज़ नहीं किया जाना चाहिए? आखिरकार, हम इसे एक वीएलसी प्लगइन का उपयोग कर ब्राउजर में एम्बेड करेंगे, इसलिए वहां एक समाधान जो काम करेगा वहां भी बेहतर होगा।
आप .. धन्यवाद एक ही समस्या है लेकिन मैं "सिंक = false" दे दिया है रिसीवर पक्ष में और यह मेरे लिए काम किया। –