আমি কি এসএসএসের মাধ্যমে পাইপ / দেব / ভিডিও করতে পারি?


26

আমার দুটি কম্পিউটার, আমার অফিসে একটি ডেস্কটপ (একটি ওয়েবক্যাম সংযুক্ত) এবং একটি ল্যাপটপ রয়েছে কোথাও নেটওয়ার্কে অন্য।

সাধারণত আমি দৌড়ে আমার ওয়েবক্যামের মাধ্যমে আমার অফিসে একবার দেখে নিই

ssh Office -Y "mplayer tv://device=/dev/video0"

আমার ল্যাপটপ থেকে আমি এক্সফোরওয়ার্ডিং এমপ্লেয়ার পছন্দ করি না, তাই আমি কেন /dev/videoআমার পিসিতে এটি ল্যাপটপে চালিয়ে টানেলটি পারি না ?

sudo mkfifo /dev/video1
ssh Office 'dd if=/dev/video' | sudo dd of=/dev/video1'

এবং তারপরে ওয়েবক্যামটি দেখতে (আমার ল্যাপটপে )

mplayer tv://device=/dev/video1

উত্তর:


14

কিছুটা এইরকম:

dd if=/dev/video0 | mplayer tv://device=/dev/stdin

স্থানীয়ভাবে আমার জন্য কাজ করে (এসওএ # 1)। তাই করে:

ssh localhost dd if=/dev/video0 | mplayer tv://device=/dev/stdin

পাশাপাশি

mkfifo test
dd if=/dev/video0 of=test &
mplayer tv://device=test

অত: পর:

  1. নামযুক্ত পাইপ ছাড়াই চেষ্টা করুন
  2. ব্যান্ডউইথ চেক করুন

এছাড়াও - কীভাবে কাজ হয় না (কালো পর্দা প্রদর্শন, অজানা ডিভাইস ইত্যাদি সম্পর্কে অভিযোগ করা)?


আমি মনে করি আমার এমপ্লেয়ারে কিছু ভুল আছে। যদি আমি dd if=/dev/video0 | mplayer tv://device=/dev/stdinএটি চালায় তবে আমাকে বলছে সংস্থানটি ব্যস্ত। অন্যথায় এটি চালানোর পরেও (আমি ভিডিও দেখি) কাজ করিmplayer tv://device=/dev/null
স্টেফান

1
এই উত্তরটি বেশ বিভ্রান্তিকর। "সঠিক" নামোচ্চারণের mplayerহবে mplayer tv:// -tv device=/dev/stdinবা অনুরূপ, কিন্তু এই কাজ করে না (চরিত্র ডিভাইসের আরো বিশেষ তুলনায় ddসঠিকভাবে হ্যান্ডেল করতে পারেন)। আপনি যখন চালনা করেন mplayer tv://device=/dev/stdinএটি কোনও ডিভাইসের স্পেসিফিকেশন দেখতে পাচ্ছে না এবং তাই /dev/video0সরাসরি " পিছনে কাজ করে" দেওয়ার মায়া দেয় to ওয়েবক্যাম এবং mplayerপ্রক্রিয়াটি নেটওয়ার্কের দ্বারা বিচ্ছিন্ন হয়ে গেলে এটি কিছুতেই কাজ করবে না ।
ড্যানিয়েল ওয়াগনার

হ্যাঁ, এটি ঠিক মতো কাজ করছে বলে মনে হচ্ছে কারণ আপনি লোকালহোস্টে এসএসএইচ করছেন, কিন্তু বাস্তবে এটি ব্যর্থ হচ্ছে এবং এমপ্লেয়ার লোকালহোস্টের / dev / video0 এ ফিরে যাচ্ছে। যদি আপনি এই আদেশগুলি অন্য কম্পিউটারে এসএসহিং ব্যবহার করে (যেমন লোকালহোস্ট নয়), আপনি নিজের স্থানীয় ওয়েবক্যাম দেখতে পাবেন, দূরবর্তীটি নয়।
জেসন আন্তম্যান

আপনি স্থানীয় হোস্টে চেষ্টা করেছেন কিন্তু ssh localhost dd if=/dev/video0 | mplayer tv://device=/dev/stdinদুটি ভিন্ন কম্পিউটার ব্যবহার করার সময় কমান্ডটি কীভাবে চালানো যায় ?
ফ্রান্সেসকো বোয়

mplayer tv://device=/dev/stdinওএসএক্স-এর বিকল্প কী ?
ফ্রান্সেস্কো বোয়

14

আপনার যদি কম ব্যান্ডউইথ থাকে তবে আমি ভিডিও স্ট্রিমের সংক্ষেপণের প্রস্তাব দিই:

ssh USER@REMOTEHOST ffmpeg -an -f video4linux2 -s 640x480 -i /dev/video0 -r 10 -b:v 500k -f matroska - | mplayer - -idle -demuxer matroska

কোথায়

  • -anঅডিও এনকোডিং বন্ধ করে দেয়। আপনি যদি অডিও চান তবে এর -anসাথে প্রতিস্থাপন করুন -f alsa -ac 1 -i hw:3(যেখানে এইচডাব্লু: 3 এছাড়াও এইচডাব্লু: 0 বা এইচডাব্লু: 1,… arecord -lআপনার ডিভাইসের জন্য দেখুন )। আপনি যদি কেবল অডিও চান (কোনও ভিডিও নেই) তবে এটি ব্যবহার করুন )
  • -s 640x480 x এবং y মাত্রায় আপনার ভিডিওর আকার
  • -r 10 আপনি যে ফ্রেমরেটটি পেতে চান তা হ'ল (নিম্ন বিটরেটে আরও ভাল চিত্র তৈরি করে তবে আরও বোম্বু লাগছে)
  • -b:v 500k 500 কিলোবাইট / গুলি এর বিটরেট

আপনার ইনস্টল করা স্থানীয় মেশিনে রিমোট হোস্ট এবং এমপ্লেয়ারে ffmpeg প্রয়োজন।


4

VideoLAN প্রকল্প বড় অংশ বিদ্যমান শুধু করতে কি আপনি ইচ্ছা।

আমি এর স্ট্রিমিং ক্ষমতা ব্যবহার করি নি তবে এর একক মেশিন ব্যবহারে এটি আমার পক্ষে শক্ত হয়ে উঠেছে।


এবং তাই, আপনি এই দৃশ্যের জন্য বিস্তারিত বলতে পারেন, দয়া করে ...?
মাইকডাব্লু

1

গৃহীত উত্তরটি আমার পক্ষে কাজ করে না। ddকেবল এটি পড়বে না। ncখারাপ যদি আপনি অন্য বন্দরটি ছাড়েন না (আমি তা কোনওভাবেই কাজ করতে পারি না)।catআমার পক্ষেও কাজ করেনি।

আমার জন্য যা কাজ শেষ হয়েছিল তা হ'ল এই শেষের দিকে:

ssh user@host "ffmpeg  -r 14 -s 640x480 -f video4linux2 -i /dev/video0 -f matroska -" | mplayer - -idle

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


সঙ্গে একত্রিত করুন টী বর্ণের নাম এবং আপনার ঘড়ি এবং একই সময়ে রেকর্ড করতে পারেন:

ssh user@host "ffmpeg  -r 14 -s 640x480 -f video4linux2 -i /dev/video0 -f matroska -" | tee $(date +%Y-%m-%d_%H-%M-%S)_recording.mkv | mplayer - -idle

এটি লাইভ স্ট্রিমিংয়ের জন্য এমপ্লেয়ারটি খুলবে এবং এটি একই সময়ে বর্তমান তারিখের সময়যুক্ত ফাইলগুলিতে সংরক্ষণ করবে (উদাহরণস্বরূপ ফাইলের নাম 2018-11-22_01-22-10_recording.mkv:)।


0

আপনি এটি করতে না পারার কোনও কারণ আছে কিনা তা আমি জানি না, তবে আপনার প্রয়োগের সাথে আমি দেখতে পাচ্ছি একটি সমস্যা হ'ল রিমোট সিস্টেমটি তার সিস্টেমে / dev / video1 সন্ধান করবে, তবে এটি খুঁজে পাবে না কারণ আপনি এটি আপনার স্থানীয় সিস্টেমে তৈরি করেছেন।

আমি যা করব তা নিম্নরূপ কিছু আছে

nc -l 12345 | sudo tee /dev/video > /dev/null &
ssh Office

এবং তারপরে আপনার স্থানীয় সিস্টেমের টিসিপি পোর্ট 12345 এ যাওয়ার জন্য কিছু বলার চেষ্টা করুন।


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