এফএফএমপিইগ ব্যবহার করে লাইভ অডিও স্ট্রিম


14

আমি লাইভ অডিও ffmpegএবং বাহ্যিক ইউএসবি মাইক্রোফোন ব্যবহার করে স্ট্রিম করার চেষ্টা করি । আমি এই প্রায় টিউটোরিয়াল অনুসরণ করেছি

আমাকে কিছু পদক্ষেপ মানিয়ে নিতে হয়েছিল তবে শেষ অবধি, আমি এই কমান্ডটি ব্যবহার করে আমার ল্যাপটপের স্ট্রিমটি অর্জন করতে পেরেছিলাম:

ffmpeg -f oss -i /dev/dsp1 -acodec libmp3lame -ab 32k -ac 1 -re -f rtp rtp://192.168.28.116:1234

সিপিইউ 100% এর কাছাকাছি, আমার দুই সেকেন্ডের সময় খারাপ শব্দ হয় এবং কিছুই না হওয়ার পরে ... আমি ওয়্যারশার্কে দেখতে পাচ্ছি যে বোর্ড নিয়মিতভাবে ফ্রেম প্রেরণ করছে।

কারও কি সিপিইউ ব্যবহার কমাতে ধারণা রয়েছে?


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

আপনি কি প্রথমে কোনও স্থানীয় ফাইলটিতে লেখার চেষ্টা করেছিলেন? আমি ধাপে ধাপে যাওয়ার চেষ্টা করব: 1) একটি ওয়েভ ফাইলে রিয়েলটাইম রেকর্ডিং, 2) একটি এমপি 3 ফাইলে রিয়েলটাইম রেকর্ডিং 3) নেটওয়ার্কে স্ট্রিমিং স্টাফ
পিক্সেলিক

মুহূর্তে না. সম্পূর্ণ স্বয়ংক্রিয় ffmpeg ;-) এর পরিবর্তে ম্যানুয়ালি এই সমস্ত পদক্ষেপগুলি করা জটিল বলে মনে হচ্ছে
হিপস

আপনি কী রেকর্ডিং করছেন?
অ্যালেক্স চেম্বারলাইন

1
আমি ইথারনেট বেবিফোন করার চেষ্টা করছি
হিপস

উত্তর:


7

আপনার নির্দিষ্ট প্রশ্নের উত্তর দেওয়ার জন্য, আপনি সিপিইউ হ্রাস করতে পারেন এয়ারকর্ডকে ffmpeg এ পাইপ করে:

arecord -f cd -D plughw:1,0 | ffmpeg -i - -acodec libmp3lame -ab 32k -ac 1 -re -f rtp rtp://234.5.5.5:1234

আপনাকে আপনার নির্দিষ্ট সাউন্ড কার্ডের মাধ্যমে প্লাগউ: 1,0 প্রতিস্থাপন করতে হবে। তথ্যের জন্য arecord -l দেখুন। আমার রাস্প পাইতে এটি 95% সিপিইউ থেকে 35% ডলারে চলে গেছে।


6

ALSA ইনপুট

এর একটি বিকল্প হ'ল ALSA এর মধ্য দিয়ে যাওয়া via উপরে অনুরূপ আদেশ হবে

ffmpeg -ac 1 -f alsa -i hw:0,0 -acodec libmp3lame -ab 32k -ac 1 -re -f rtp rtp://localhost:1234

আমি নিশ্চিত না যে এটি কীভাবে সিপিইউ ব্যবহারে প্রভাব ফেলবে।


আমি চেষ্টা করেছি: ffmpeg -ac 1 -f alsa -i hw: 1,0 -acodec libmp3lame -ab 32k -ac 1 -re -f rtp rtp: //192.168.1.116: 1234 তবে ffmpeg কিছুটা সেকেন্ড পরে ক্র্যাশ হয়েছে: [আলসা @ 0x7a1510] ALSA বাফার এক্সরুন। অন্য কোন ধারণা?
হিপ্পস

আমি ffmpeg -f oss -i / dev / dsp1 -ab 32k -ac 1 -re -f rtp rtp: //192.168.28.116: 1234 পরীক্ষা করেছি তবে শব্দটি খুব খারাপ ... লেগটিতে প্রায় 6 সেকেন্ডের কাছাকাছি। এর চেয়ে ভাল সমাধানের কোনও ধারণা?
হিপ্পস

1
@ si2w আমি মনে করি এমপি 3 এর জন্য 32 কে কিছুটা রসিকতা। হয় যে আপ, বা একটি অন্য কোডেক চেষ্টা করুন। টেলিফোনের জন্য ডিজাইন করা জি 2 এক্সএক্সএক্স সিরিজের একটি হতে পারে
অ্যালেক্স চেম্বারলাইন

3

এটি সিপিইউ ব্যবহার করে এবং হ্রাস করে:

ffmpeg -f alsa -i default:CARD=U0x46d0x819 -acodec mp2 -ac 1 -re -f rtp rtp://234.5.5.5:1234 2> /tmp/mylog.log &

ডিফল্ট প্রতিস্থাপন করতে ভুলবেন না: CARD = U0x46d0x819 আপনার মাইক্রোফোন আইডি সহ, (arecord -l থেকে প্রাপ্ত) বা আপনি ক্যাড নির্দিষ্ট করুন -i hw:0,0(বা এটি যেকোন ডিভাইস)।

আমার অনুরূপ সমস্যা ছিল - এমপি 3 এনকোডিং 90% + সিপিইউ পাওয়ার গ্রহণ করেছিল এবং কেবল অডিওটি ধরে রাখতে পারে না - তাই আমি এটিকে এমপি 2 এনকোডিংয়ে পরিবর্তন করেছি। এটি প্রায় 15-18% সিপিইউ (মাপা vi top) ব্যবহার করেছে এবং আমার ল্যানে VLC এ সাবলীলভাবে প্রবাহিত করেছে। এটি নিখুঁত বাচ্চা মনিটর তৈরি করবে বা যা কিছু হোক। মাত্র এক সেকেন্ড বা এত দেরি হচ্ছে, যা ভিএলসি শেষে বাফারিং।

দ্রষ্টব্য: আইপি ঠিকানাটি একটি মাল্টিকাস্ট ঠিকানা ([224-239] .xyz)। আপনার ল্যানের নির্দিষ্ট কোনও নেটওয়ার্ক ডিভাইসে আপনাকে এটি লক্ষ্য করতে হবে না এবং আপনার ব্রডব্যান্ড রাউটারটি ট্র্যাফিক স্থানীয় রাখবে (ডিফল্টরূপে)।


2

আপনি ইনপুট ডিভাইসের অডিও নমুনা হার ( -ar 8000 আগে -f alsa ) হ্রাস করে এবং কোডেক অডিও বিট রেটকে 128 কে ( -b:a 128k) এ সেট করে আপনি সিপিইউ লোডকে উল্লেখযোগ্যভাবে হ্রাস করতে পারবেন । এছাড়াও চ্যানেলের সংখ্যা হ্রাস করার ফলে ( -ac 1) মনে হয় সিপিইউ লোড বাড়িয়েছে তাই আমি দেখতে পেয়েছি যে এই কমান্ডটি খুব কম সিপিইউতে চলেছে:

ffmpeg -ar 8000 -f alsa -i hw:0 -acodec mp2 -b:a 128k -f rtp rtp://other:4444

যদিও এটি মনে রাখা দরকার যে এটি যে ক্যাপচার হার্ডওয়্যারটি ব্যবহারের চেষ্টা করছে তার ক্ষমতা এবং ffmpeg / avconv এর সংস্করণগুলির উপরও নির্ভর করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.