ssh এর মাধ্যমে সাউন্ড (মাইক্রোফোন) পুনর্নির্দেশ, ssh এর মাধ্যমে টেলিফোন কীভাবে করবেন?


47

আমি কীভাবে কোনও কম্পিউটারের মাইক্রোফোনটিকে অন্য কম্পিউটারে শোনার জন্য পুনরায় ডাইরেক্ট করতে পারি? কোনটি সঠিক ডিভাইস বা কোনটি সঠিক কমান্ড লাইন?

কিছু বছর আগে দূরবর্তী মাইক্রোফোন থেকে স্থানীয় কম্পিউটারে বা এর বিপরীতে শব্দটি পুনঃনির্দেশ করা সহজ এবং মজাদার ছিল - এটি একটি সহজ টেলিফোন ছিল। এর জন্য কয়েকটি নির্দেশনা রয়েছে , তবে তাদের মধ্যে কেউই নতুন কম্পিউটার / লিনাক্স ডিস্ট্রোজে কাজ করছে বলে মনে হয় না। আমি এমনকি একটি না থাকে /dev/audioআমার কম্পিউটার (ফেডোরা 17) করেন।

আমি মনে করি এটি ডাল অডিওর সাথে কিছু করতে পারে। অথবা এই সাধারণ টেলিফোনের জন্য আমার নাড়ির অডিও দরকার নেই? সঠিক ডিভাইসটি কোনটি?

আমি যখন alsamixerF6 কীটি শুরু করি তখন টিপুন এবং আমি আমার সমস্ত শব্দ ডিভাইস দেখতে পাচ্ছি । তবে আমার /devগাছের কোনটি ডিভাইস তা আমি জানি না ।

উত্তর:


53

ঠিক আছে, আমি এটি সন্ধান করেছি এবং এটি এখনও কার্যকর! সত্যিই মজার. আপনার কোনও অভিনব অ্যাপ্লিকেশন, তাত্ক্ষণিক ম্যাসেঞ্জার বা এর মতো দরকার নেই। এই আদেশ দ্বারা আপনি আপনার অডিও দূরবর্তী হোস্টে প্রেরণ করুন

arecord -f cd -t raw | oggenc - -r | ssh <user>@<remotehost> mplayer -

অথবা আপনি যদি ffmpeg ভাল চান

ffmpeg -f alsa -ac 1 -i hw:3 -f ogg - \
    | ssh <user>@<remotehost> mplayer - -idle -demuxer ogg

সূত্র: http://shmerl.blogspot.de/2011/06/some-fun-with-audio-forwarding.html


আপনি যদি সত্যিকারের টেলিফোন চান:

উপরের কমান্ডটি কেবল একটি দিকের জন্য ছিল। অন্য দিকের জন্য আপনাকে আরেকটি ssh অধিবেশন শুরু করতে হবে। সুতরাং, অন্য ব্যবহারকারী আপনাকে যা বলে তা গ্রহণ করতে, ব্যবহার করুন

ssh <user>@<remotehost> 'arecord -f cd -t raw | oggenc - -r' | mplayer -

অথবা আপনি যদি ffmpeg ভাল চান

ssh <user>@<remotehost> ffmpeg -f alsa -ac 1 -i hw:3 -f ogg - \
    | mplayer - -idle -demuxer ogg

hw:3আপনি যে আলসাদেভিসটি রেকর্ড করতে চান তা কোথায় (এটির সাথে এটি সন্ধান করুন arecord -l; আপনি একটি ডিভাইসের নামও ব্যবহার করতে পারেন, এটি সহ এটি খুঁজে পেতে arecord -Lপারেন; অনেক ক্ষেত্রে আপনি কেবল নীচের কমান্ডের সাথে তালিকাবদ্ধ ডিভাইসটি ব্যবহার করতে পারেন arecord -L | grep sysdefault:)।

হালনাগাদ

আমার ফেডোরা লিনাক্স সিস্টেমে 2018 এ ffmpegআলসা সমর্থন অন্তর্ভুক্ত নেই (এটি রাস্পবিয়ান সহ রাস্পবেরিপি সিস্টেমগুলিতে একই বলে মনে হচ্ছে)। তবে সংশোধন না করেই একটি সহজ সমাধান রয়েছে। এফার্ডপিগ-এ কেবল আয়ারকর্ড (আলসারেকর্ডার) এর আউটপুটটি পাইপ করুন :

ssh <user>@<remotehost> 'arecord -f cd -D plughw:2 | ffmpeg -ac 1 -i - -f ogg -' \
    | mplayer - -idle -demuxer ogg

plughw:2নিম্নলিখিত কমান্ডের আউটপুটে আপনার ডিভাইসটি আবিষ্কার করে আপনি ইনপুট ডিভাইসটি পান :

arecord -l

আমার ক্ষেত্রে আমি দেখতে পাই card0এবং card2(আমার ওয়েবক্যামটিতে একটি মাইক্রোফোন রয়েছে)। তাই আমি লিখেছি plughw:2জন্য card2

আপডেট 2 (এমপ্লেয়ার ছাড়াই)

আপনার যদি না থাকে বা পছন্দ না হয় mplayerতবে ffplay(যা এর অংশ ffmpeg) আপনি ব্যবহার করতে পারেন:

  • সঙ্কুচিত তরঙ্গ-অডিও (উচ্চ ব্যান্ডউইথ, রেকর্ডিং সাইডে খুব কম সিপিইউ ব্যবহার)

    ssh <user>@<remotehost> "arecord -f cd -D plughw:2" | ffplay -nodisp -
    
  • ফ্ল্যাক দিয়ে সংকুচিত (লো ব্যান্ডউইথ, রেকর্ডিংয়ের দিকে কম সিপিইউ ব্যবহার)

    ssh <user>@<remotehost> "arecord -f cd -D plughw:2 | flac - -o -" | ffplay -nodisp -
    
  • ওজি দিয়ে সংকুচিত (খুব কম ব্যান্ডউইথ, রেকর্ডিং সাইডে উচ্চ সিপিইউ ব্যবহার)

    ssh <user>@<remotehost> "arecord -f cd -D plughw:2 | oggenc -" | ffplay -nodisp -
    

1
আপনি ন্যায়বিচারের cat - | mplayer -পরিবর্তে করছেন এমন কোনও কারণ আছে mplayer -?
ক্রিস ডাউন

কারণটি হ'ল: আমি উদ্ধৃত উত্স থেকে কমান্ডটি অনুলিপি করেছি। অপ্রয়োজনীয় হতে পারে। আমি এটি মুছে ফেলেছি, এখনও কাজ করছে বলে মনে হচ্ছে। হতে পারে এমন একটি প্রান্তের কেস রয়েছে যেখানে এটির দরকার ছিল এবং লেখক তার পোস্টে এটি না জানিয়ে এটি সম্পর্কে জানতেন?
এরিক

3

এরিকের উত্তরটি ভালভাবে কাজ করে, তবে এটি কীভাবে রয়েছে তা ব্যবহার করে flacবা ব্যবহারযোগ্যভাবে oggencউল্লেখযোগ্য পিছনে রয়েছে।
একটি সমাধান যোগ হয় -cache 256থেকে mplayerনিম্নরূপ কমান্ড তাই এটি দেখাবে:

ssh <user>@<remotehost> "arecord -f cd -D plughw:2 | oggenc -" | mplayer -cache 256 -

আরেকটি বিষয় উল্লেখ করার মতো হ'ল আজকাল প্রতিটি আধুনিক বিতরণে পালস অডিওকে ব্যবহার করে যা হার্ডওয়্যার ডিভাইসের নিয়ন্ত্রণ নেয়, সুতরাং plughw:2পালস অডিও চলমান থাকলে ব্যবহার ব্যর্থ হবে।
সাধারণত, defaultসূক্ষ্মভাবে কাজ করা উচিত এবং পালস অডিও ব্যবহার করা উচিত, যেখানে আপনি pavucontrolনিজের পছন্দসই ইনপুট উত্সটি পালস অডিও ব্যবহার করে নির্বাচন করতে বা অনুরূপ করতে পারেন ।

এটি কমান্ডটি নিম্নলিখিত হিসাবে তৈরি করবে:

ssh <user>@<remotehost> "arecord -f cd | oggenc -" | mplayer -cache 256 -

বাট: এটি একটি পিছনে পরিচয় করিয়ে দেয়। আমার ক্ষেত্রে, এটি প্রায় আট সেকেন্ডের। এটা ভয়ানক।


সমাধান অন্য কমান্ডের তুলনায় অনেক সহজ:

ssh <user>@<host> "arecord -f S16_LE -r 36000" | aplay

এটাই. এটি সবেমাত্র কোনও সিপিইউ ব্যবহার করছে (অনুযায়ী 0.1% htop)। এটি আমার জন্য K 60KB / s ব্যান্ডউইথ ব্যবহার করে।

আপনি যদি স্টেরিও শব্দটি চান: ssh <user>@<host> "arecord -f cd" | aplay
কেবলমাত্র আপনার কাছে যদি স্টেরিও মাইক্রোফোন থাকে তবে ব্যান্ডউইদথটি আমার জন্য 150 কেবি / সেকেন্ডে বাড়িয়ে দেয়। (যেহেতু এটি স্যাম্পলিংয়ের হারটিও ৪০০০০ হিজিটে উন্নীত করে)।

স্যাম্পলিং হার ( -r) এবং বিট রেট (প্রভাবিত) সম্পর্কে আরও তথ্য এখানে-f পাওয়া যাবে
মূলত: আপনি যত কম যান, মানের তত খারাপ তবে ব্যান্ডউইথের পরিমাণ কম the

এই সমাধানটি পালস অডিওর সাথে পুরোপুরি সামঞ্জস্যপূর্ণ, আপনি আউটপুট ডিভাইস, ভলিউম এবং আরও অনেক কিছু ব্যবহার করে pactlবা pavucontrolজিইউআই অ্যাপ্লিকেশনটি নিয়ন্ত্রণ করতে পারেন :

pavucontrol

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