ffmpeg क्यों एक.avi वीडियो फ़ाइल की स्ट्रीमिंग RTP प्राप्त करने में विफल रहता है?




video-streaming (2)

इसके बजाय ffplay rtp://127.0.0.1:1235 , ffplay -i foo.sdp उपयोग करें।

स्थानीय फ़ाइल foo.sdp को इसे ffmpeg से पाठ आउटपुट में चिपकाने के लिए बनाएं, जो कि लाइन SDP: अनुसरण करता है SDP: उदाहरण के लिए:

v=0
o=- 0 0 IN IP4 127.0.0.1
s=No Name
c=IN IP4 127.0.0.1
t=0 0
a=tool:libavformat 55.2.100
m=video 1235 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1

.sdp फ़ाइल में आरटीपी पता शामिल है, इसलिए आपको rtp: // ... के रूप में भी निर्दिष्ट करने की आवश्यकता नहीं है।

Ffmpeg स्ट्रीमिंगगुइड में , यह लिखता है:

ffmpeg -re -f lavfi -i aevalsrc="sin(400*2*PI*t)" -ar 8000 -f mulaw -f rtp rtp://127.0.0.1:1234 &
ffplay rtp://127.0.0.1:1234

कृत्रिम संकेत को बदलने के लिए मैं एक वास्तविक वीडियो फ़ाइल का उपयोग करना चाहता हूं। फिर मैं टर्मिनल ए पर नीचे लिखूंगा:

ffmpeg -re -i outputFile.avi -f mulaw -f rtp rtp://127.0.0.1:1234

ऐसा लगता है कि यह काम कर रहा है: फ़्रेम की जानकारी गिनती है अंत में टर्मिनल ए पर जानकारी यहां दी गई है:

frame=  309 fps= 29 q=31.0 Lsize=     931kB time=00:00:10.30 bitrate= 740.8kbits/s     video:922kB audio:0kB subtitle:0 global headers:0kB muxing overhead 1.030813%

जब टर्मिनल ए पर फ़्रेम अभी भी गिना जाता है (समाप्त नहीं हुआ), मैं टर्मिनल बी पर नीचे टाइप करता हूं:

ffplay rtp://127.0.0.1:1234

लेकिन यह काम नहीं करता है: त्रुटि की जानकारी है:

[udp @ 0x7fb370001500] bind failed: Address already in useB f=0/0   
rtp://127.0.0.1:1234: Input/output error

क्यूं कर?

[अपडेट 1] केमिली गौड्यूसेन के निर्देश के बाद मैंने फू एसडीपी इस्तेमाल किया
Ffmpeg टर्मिनल के लिए इनपुट है:

ffmpeg -re -i out.avi -f mulaw -f rtp rtp: 1212.0.0.1: 1235

एफएफपीएल के लिए टर्मिनल है:

ffplay -i foo.sdp

एफएफपीएफ़ टर्मिनल छवियों के बिना बहुत सारी त्रुटि दिखाता है।

  libpostproc    52.  2.100 / 52.  2.100
[sdp @ 0x7fafdc0008c0] Undefined type (30)    0KB sq=    0B f=0/0   
[sdp @ 0x7fafdc0008c0] nal size exceeds length: 25453 86 0B f=0/0   
[sdp @ 0x7fafdc0008c0] Consumed more bytes than we got! (-25367)
[sdp @ 0x7fafdc0008c0] nal size exceeds length: 25453 86
[sdp @ 0x7fafdc0008c0] Consumed more bytes than we got! (-25367)
[sdp @ 0x7fafdc0008c0] Unhandled type (27) (See RFC for implementation details
[sdp @ 0x7fafdc0008c0] Undefined type (31)    0KB sq=    0B f=0/0   
[sdp @ 0x7fafdc0008c0] Unhandled type (27) (See RFC for implementation details
[sdp @ 0x7fafdc0008c0] nal size exceeds length: 62414 6130B f=0/0   
[sdp @ 0x7fafdc0008c0] Consumed more bytes than we got! (-61801)
[sdp @ 0x7fafdc0008c0] nal size exceeds length: 62414 613
[sdp @ 0x7fafdc0008c0] Consumed more bytes than we got! (-61801)
[h264 @ 0x7fafdc003020] non-existing PPS referencedq=    0B f=0/0   
[h264 @ 0x7fafdc003020] non-existing PPS 0 referenced
[h264 @ 0x7fafdc003020] decode_slice_header error
[h264 @ 0x7fafdc003020] Invalid mix of idr and non-idr slices
[sdp @ 0x7fafdc0008c0] Undefined type (31)    0KB sq=    0B f=0/0   
[sdp @ 0x7fafdc0008c0] Unhandled type (29) (See RFC for implementation details
[sdp @ 0x7fafdc0008c0] Unhandled type (26) (See RFC for implementation details
[sdp @ 0x7fafdc0008c0] Unhandled type (27) (See RFC for implementation details
    Last message repeated 2 times  0KB vq=    0KB sq=    0B f=0/0   
[sdp @ 0x7fafdc0008c0] Undefined type (31)
[sdp @ 0x7fafdc0008c0] Unhandled type (26) (See RFC for implementation details
[sdp @ 0x7fafdc0008c0] Unhandled type (25) (See RFC for implementation details
[h264 @ 0x7fafdc003020] insane cropping not completely supported, this could look slightly wrong ... (left: 2, top: 2)
[h264 @ 0x7fafdc003020] illegal aspect ratio
[h264 @ 0x7fafdc003020] missing picture in access unit with size 84589
[h264 @ 0x7fafdc003020] Partitioned H.264 support is incomplete
[h264 @ 0x7fafdc003020] insane cropping not completely supported, this could look slightly wrong ... (left: 2, top: 2)
[h264 @ 0x7fafdc003020] illegal aspect ratio
[h264 @ 0x7fafdc003020] insane cropping not completely supported, this could look slightly wrong ... (left: 2, top: 2)
[h264 @ 0x7fafdc003020] illegal aspect ratio
[h264 @ 0x7fafdc003020] no frame!
[h264 @ 0x7fafdc003020] RTP: missed 2563 packetsB sq=    0B f=0/0   
[sdp @ 0x7fafdc0008c0] Undefined type (30)
    Last message repeated 1 times
[sdp @ 0x7fafdc0008c0] Undefined type (31)

ffplay rtp://127.0.0.1:1234 आने वाली आरटीपी-यातायात के लिए यूडीपी-पोर्ट 1234 पर सुनना शुरू करेगा।

केवल एक ही एप्लीकेशन किसी भी समय किसी मेजबान पर किसी भी पोर्ट पर सुन सकता है।

त्रुटि "बाँध विफल: पता पहले से उपयोग में है" इंगित करता है, कि एक और आवेदन पहले से ही पोर्ट 1234 पर सुन रहा है। शायद आप अभी भी अपने परीक्षणों से स्क्रिप्ट चला रहे हैं?

या तो बंदरगाह को अवरुद्ध कर रहा है, या एक अलग बंदरगाह का उपयोग करें