Ffmpeg সঙ্গে webrtc- মত বিলম্ব পেতে?


11

আমি এটি ক্রোম এবং আমার ফোনের মধ্যে ব্যবহার করেছি:

http://www.webrtc.org/demo

এবং লেটেন্সিটি সত্যিই ভাল - 1 সেকেন্ডেরও কম।

আমি আমার কম্পিউটারে এটির সাফল্যের সাথে প্রতিলিপি দেওয়ার চেষ্টা করেছি।

ffmpeg -f video4linux2 -i /dev/video0  -s 320x200 -r 50 -deadline realtime -vcodec libvpx -f webm -fflags nobuffer udp://10.0.0.55:9002

এবং অন্যদিকে ffplay ব্যবহার করে।

এটি এখনও কয়েক সেকেন্ড পিছিয়ে পড়েছে।

অবশেষে আমি আমার কম্পিউটার থেকে অ্যান্ড্রয়েড ফোনে প্রবাহিত করতে চাই, তবে বিলম্বটি ভাল হয়েছে।

সম্পাদনা করুন - এটি উল্লেখযোগ্যভাবে আরও ভাল কাজ করে। আমি যদি এর থেকে কিছুটা শেভ করতে পারি তবে আমি খুশি হব:

ffmpeg -vcodec rawvideo -f video4linux2 -i /dev/video0  -s 320x200 -r 25 -vcodec libvpx -f rtp -deadline realtime rtp://10.0.0.55:9002

1
লিঙ্কটি মারা গেছে। মূলত আপনি ভিডিও রূপান্তর করতে এবং আপনার ফোনে এটিকে স্ট্রিম করতে চান? ওয়াইফাই বা বাহ্যিক?
jiggunjer

আমি যা করতে চাই তা কোনও ডিভাইসের সাথে সংযুক্ত ক্যামেরা থেকে স্ট্রিম হয় এবং এটি ইউএসবির মাধ্যমে সংযুক্ত একটি অ্যান্ড্রয়েড ট্যাবলেট (নেক্সাস 10) এ প্রদর্শিত হয়।
ডেভিড এন। ওয়েলটন

1
আমি এই কোডেকগুলি সম্পর্কে খুব বেশি জানি না তবে আপনি কি পরীক্ষা করেছেন যে এগুলি যেখানে সম্ভব সেখানে হার্ডওয়্যার ত্বরান্বিত হয়? এটি আমার অনুমান যে আপনি কেন 1 সেকেন্ডের বেশি বিলম্ব করছেন।
স্নোপেন

ভিপিএক্স রিয়েলটাইমের কাছাকাছি যেতে জটিল হতে চলেছে, আমি জানি x264 এর একটি সুর "লো ল্যাটেন্সি" বা
এফডাব্লুআইডাব্লির

উত্তর:


1

সমস্যা হল আপনি ব্যবহার করছেন বাস্তবতা থেকে বেশিরভাগই হয় সফ্টওয়্যার ট্রান্সকোডিং , পরিবর্তে হার্ডওয়্যার ট্রান্সকোডিং

থাম্বের নিয়ম হিসাবে, যদি রূপান্তরটি হার্ডওয়্যার ত্বরণ ব্যবহার করে তবে বিলম্বিতাটি সেকেন্ডের চেয়ে কম (সাধারণত মিলি সেকেন্ড) কম হবে। এটি যদি সফ্টওয়্যারটিতে সম্পন্ন হয়, তবে বিলম্বটি সেকেন্ডের চেয়ে বেশি হবে order

FFmpeg হার্ডওয়্যার ত্বরণকে সমর্থন করে, তবে এটি এটিকে আপনার পক্ষে কার্যকর করে তোলা সহজ।

https://trac.ffmpeg.org/wiki/HWAccelIntro

অন্যদিকে, গুগল ক্রোম আপনার কম্পিউটার এবং আপনার অ্যান্ড্রয়েড ফোন উভয়তেই ভিপি 8 এবং এইচ 264 (যেখানে এটি উপলব্ধ রয়েছে) হার্ডওয়্যার এনকোডিং / ডিকোডিং সমর্থন করে:

http://code.google.com/p/chromium/issues/detail?id=428223


2
এটি কেবল হার্ডওয়্যার ত্বরণ সম্পর্কে নয় ... কোডেক কনফিগারেশনটি বিলম্বিত হওয়ার ক্ষেত্রে অনেক বেশি বড় ভূমিকা পালন করে। মানের এবং ব্যান্ডউইথের ব্যয়ে, বিলম্বতা কম রাখার জন্য কোডেক টিউন করা দরকার। আপনি হার্ডওয়্যার এক্সিলারেটর কোডেকগুলি ব্যবহার করছেন কিনা তা এটি করা যেতে পারে।
ব্র্যাড

এই লিঙ্কটি বিশেষত বলেছে যে ক্রোম কেবলমাত্র অ্যান্ড্রয়েডে ডেস্কটপে হার্ডওয়্যার এনকোডিং সমর্থন করে না।
ডেভর

দুঃখিত তবে ব্র্যাড ঠিক বলেছেন, উত্তরটি সম্পূর্ণ ভুল: যতক্ষণ আপনি একই কোডেক সেটিংস সেট করেন ততক্ষণ আপনি হার্ডওয়্যার বা সফ্টওয়্যার এনকোডিং করলে কোনও পার্থক্য নেই (যতক্ষণ না আপনার সাথে রিয়েলটাইম এনকোডিং করার মতো পর্যাপ্ত সিপিইউ পাওয়ার থাকে আপনার সাথে কোডেক সেটিংস)। সঠিকটি হ'ল এটি কেবল ভিডিও কোডেক সেটিংস সম্পর্কেই নয় তবে বেশিরভাগ ক্ষেত্রে ডিকোডারের পরিবহণ এবং বাফারিংয়ের ধরণ সম্পর্কে। ওয়েবআরটিসি কাজ করে কারণ এটি স্বল্প-বিলম্বের জন্য সুর করা। টিপিকাল ওয়েবমের ডিকোডারটি নিখরচায় করার উদ্দেশ্যে নয়
হ্যারি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.