লিনাক্সে ডেস্কটপ নকল ওয়েবক্যাম হিসাবে ব্যবহার করা


47

ক্যাপচার হওয়া ভিডিওটিকে একটি নকল ওয়েবক্যাম হিসাবে ব্যবহার করে একটি বিনামূল্যে স্ট্রিমিং সাইট ব্যবহার করে আমি আমার লিনাক্স ডেস্কটপের একটি লাইভ স্ট্রিম তৈরি করতে চাই। উইন্ডোতে এটির জন্য অনেকগুলি সরঞ্জাম রয়েছে। ffmpeg আমাকে একটি নির্দিষ্ট উইন্ডোতে ইনপুট ক্যাপচার করতে দেয়, তবে আমি ফ্ল্যাশ দ্বারা ব্যবহারযোগ্য জাল ওয়েব ক্যামের-স্টাইল ডিভাইসে ভিডিও আউটপুট দেওয়ার কোনও উপায় খুঁজে পাই না।

কেউ কি এটি করার জন্য কোনও পদ্ধতির (বা সফ্টওয়্যার) সুপারিশ করতে পারেন?


আপনি "জাল ওয়েবক্যাম-স্টাইলের ডিভাইসটিকে ফ্ল্যাশ দ্বারা ব্যবহারযোগ্য" না বলা পর্যন্ত এটি সমস্তই হানকি-ডোরি ছিল।
ইগনাসিও ওয়াজকেজ-আব্রামস

আপনি কি বোঝাতে চাচ্ছেন তা আমি নিশ্চিত নই? "ওয়েবক্যাম-স্টাইল" ডিভাইস দ্বারা আমি বোঝাতে চেয়েছি এমন একটি জাল / দেব / ভিডিওএন ডিভাইস ফাইলের মতো কিছু বা অনুরূপ। আমি ধরে নিয়েছি যে কীভাবে ভিডিওটি ফ্ল্যাশের মাধ্যমে ব্যবহারযোগ্য হবে।
বেকনরাদ

যথাযথভাবে। এটা শক্ত।
ইগনাসিও ওয়াজকেজ-আব্রামস

উত্তর:


51

আপনি v4l2loopback ইনস্টল করতে পারেন । এটি একটি কার্নেল মডিউল যা একটি ওয়েবক্যামের অনুকরণ করে। এটি দিয়ে লোড করুন:

modprobe v4l2loopback

তারপরে আপনাকে ffmpeg এর মতো একটি প্রোগ্রাম ব্যবহার করে ডিভাইস / dev / video0 এ ভিডিও স্ট্রিমটি প্রেরণ করতে হবে। ডেস্কটপ ক্যাপচার করতে এবং এফএফএমপিএগ দিয়ে / dev / video0 এ ফরোয়ার্ড করতে আপনি নিম্নলিখিত কমান্ড লাইনটি ব্যবহার করতে পারেন:

ffmpeg -f x11grab -r 15 -s 1280x720 -i :0.0+0,0 -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video0

যদি আপনি আলাদা ফ্রেম রেট চান তবে -r এর মান 15 থেকে অন্য কিছুতে পরিবর্তন করুন। রেজোলিউশনটি -s প্যারামিটারে চয়ন করা হয়। আপনি যদি স্ক্রিনের উপরের-বাম কোণ থেকে কোনও অফসেট নির্দিষ্ট করতে চান তবে এটি "-i: 0.0 + x, y" আকারে -i প্যারামিটারে পাস করুন, যেখানে x এবং y যথাক্রমে অনুভূমিক এবং উল্লম্ব অফসেট।


5
আপনার চিত্রটি মিরর করা যেতে পারে, এর অর্থ আপনার ffmpeg বিল্ডের উপর নির্ভর করে অনুভূমিক ফ্লিপ পান । ভিডিও ফিল্টার -vf এইচএফলিপ ব্যবহার করুন । আপনি যদি ইতিমধ্যে একটি ভিএফ ব্যবহার করেন তবে সেগুলি কোটের ভিতরে রাখুন এবং কমা দ্বারা বিভক্ত, যেমন -vf 'hflip, স্কেল = 640: 360'।
মার্সেলো টিক্সেইরা রুগেরি

3
আমি এই সাথে কয়েক ত্রুটি পেয়ে করছি [x11grab @ 0x24013c0] Stream #0: not enough frames to estimate rate; consider increasing probesize, [v4l2 @ 0x2409520] ioctl(VIDIOC_G_FMT): Invalid argumentএবংCould not write header for output file #0 (incorrect codec parameters ?): Invalid argument
লোটাস

1
Ffmpeg 3.1.4 এর সাথে @ লোটাসের মতো ঠিক একই আউটপুটগুলি পাচ্ছি। V4l2loopback এবং ffmpeg এর পাশে প্রয়োজনীয় কোনও বিশেষ কোডেক বা প্যাকেজ রয়েছে?
cguenther

1
@ লোটাস আমি যখন অন্য / ডিভ / ভিডিও ডিভাইস ব্যবহার করি তখন আমি সমস্যাটি সমাধান করতে সক্ষম হয়েছি। আপনার v4l2 ভিডিও ডিভাইসটি নিশ্চিত করা উচিত (যা আমার ক্ষেত্রে / dev / video1)। অফসেটটি ইতিমধ্যে উপস্থিত / ডি / ভিডিও0 ব্যবহার করে বিদ্যমান রিয়েল ওয়েবক্যাম ডিভাইসের কারণে ঘটতে পারে।
cguenther

2
@ লোটাস আপনার ক্রোম ব্রাউজারটি শুরু করার আগে নিশ্চিত হয়ে নিন যে মোডপ্রাব কমান্ডটি (রুট হিসাবে বা সুডো সহ) চালিত হয়েছে। <code> lsmod | মডিউলটি সঠিকভাবে লোড হয়েছে কিনা তা পরীক্ষা করুন grep v4l2loopback </code>।
cguenther

6

এমপ্লেয়ার সহ v4l2loopback ব্যবহার করুন ।

  1. এটি ডাউনলোড করুন,
  2. এটি সংকলন করুন ( makeএবং su -c 'make install'),
  3. সাথে মডিউল লোড করুন su -c 'modprobe v4l2loopback',
  4. তারপরে examples/yuv4mpeg_to_v4l2.cv4l2loopback উত্স ফোল্ডারের ফাইলটিতে একটি লাইন পরিবর্তন করুন

    v.fmt.pix.pixelformat = V4L2_PIX_FMT_YUV420;
    

    প্রতি

    v.fmt.pix.pixelformat = V4L2_PIX_FMT_YVU420;
    
  5. এবং makeএই ফোল্ডারে না।

  6. তারপরে এটি examplesডিরেক্টরি থেকে এটি চালান :

    mkfifo /tmp/pipe  # only needed once, as long as you do not delete the file /tmp/pipe
    ./yuv4mpeg_to_v4l2 < /tmp/pipe &
    mplayer movie.mp4 -vf scale=480:360 -vo yuv4mpeg:file=/tmp/pipe
    

    যেখানে আপনি movie.mp4আপনার ভিডিও ফাইলের নামের সাথে প্রতিস্থাপন করবেন। এবং /dev/video0আপনার লুপব্যাক ডিভাইসটি প্রতিস্থাপন করুন ।

এমপ্লেয়ার স্ট্যান্ডিন থেকে শুরু করে যে কোনও ওয়েব স্ট্রিম, সব ধরণের ভিডিও ফাইল খেলতে সক্ষম! আমি কেবল এটি http://www.tagesschau.de এর একটি ফাইল দিয়ে পরীক্ষা করেছি যা একটি জার্মান সংবাদ সাইট।

TS=$(wget "http://www.tagesschau.de/multimedia/video/" -q -O - | grep --regexp='http.*\.webm"' | sed -e 's%.*href="%%' -e 's%\.webm".*%\.webm%')
./yuv4mpeg_to_v4l2 < /tmp/pipe &
mplayer $TS -vf scale=480:360 -vo yuv4mpeg:file=/tmp/pipe

S টিএস এর পরিবর্তে আপনি একটি লাগাতে পারেন -(যার মানে স্টিডিন)। এবং এমপ্লেয়ারের সামনে আপনার ffmpeg কমান্ড তার আউটপুটটিকে স্টডআউটে পুনঃনির্দেশ করছে। সুতরাং যেমন কিছু:

./yuv4mpeg_to_v4l2 < /tmp/pipe &
fmpeg -someOptions ... -o - | mplayer - -vf scale=480:360 -vo yuv4mpeg:file=/tmp/pipe

শেষটি পরীক্ষা করে নি, কারণ আপনার ffmpeg কমান্ডটি দেখতে কেমন তা আপনি জানাননি।


দয়া করে সহায়তা করুন: ./yuv4mpeg_to_v4l2 < /dev/video0 &বাড়ে ./yuv4mpeg_to_v4l2: : missing YUV4MPEG2 header। কিভাবে প্রতিস্থাপন /tmp/pipeদ্বারা /dev/video0?
ব্যবহারকারী 123456

3

আপনি কোন ডিস্ট্রো ব্যবহার করছেন? আমি লাইভস্ট্রিম ওয়েব-ভিত্তিক "স্টুডিও" এর সাথে মিলিত আর্কের আওতায় ওয়েবক্যামস্টুডিওর সাথে সাফল্য পেয়েছি। যদিও আমি এটি ব্যবহার করেছি তার পরে কিছুটা সময় হয়ে গেছে।

http://www.ws4gl.org/

আপনি কি ঠিক করার চেষ্টা করছেন? x11grab এর সাথে সংকলিত ffmpeg ডেস্কটপ রেকর্ড করতে পারে। আমি উড্রমে এটি সীমাবদ্ধ সাফল্য পেয়েছি, কিন্তু আবার এটি একটি সময় হয়ে গেছে এবং আমি মনে করি আমি যা করছিলাম তা আর কাজ করবে না।

যদি আপনি কেবল আপনার ডেস্কটপের পরিবর্তে কোনও ফাইল স্ট্রিম করতে চান (আপনি যখন বলছেন "উইন্ডো," যার অর্থ, "ভিএলসি") আমি ভাবছি তবে লাইভস্ট্রিমের সাথে কাজ করার জন্য আমি আপনাকে সঠিক দিকে নির্দেশ করতে পারি (সম্ভবত ustream)। আমি পরীক্ষার মাধ্যমে কীভাবে এটি করতে হবে তা উদ্বেগজনকভাবে আবিষ্কার করছি। এটি চমত্কার নয় তবে এটি লাইভস্ট্রিমের সাথে কাজ করে।

জাস্টিন.টিভিতে এমন স্ক্রিপ্ট রয়েছে যা ভিএলসি থেকে তাদের পরিষেবাতেও প্রবাহিত হতে পারে।

http://apiwiki.justin.tv/mediawiki/index.php/Linux_Broadcasting_API


ওহ বাহ এটা খুব আকর্ষণীয়। আমি কয়েকটি গেমের লাইভ গেমপ্লে স্ট্রিম করার চেষ্টা করছি। আমি ইতিমধ্যে ffmpeg থেকে একটি ভিডিও ফাইল ক্যাপচার করতে জানি, আমি ভাবছি আমি যদি একই ফাইলটি ভিএলসিতে খুলতে পারি এবং এটি লিখিত হওয়ার সাথে সাথে এটি প্রবাহিত করতে পারি কিনা। তথ্যের জন্য ধন্যবাদ।
বেকনরাদ

ws4gl.org ওয়েবসাইটটি খুব পুরানো বলে মনে হচ্ছে এবং সমস্ত লিঙ্কগুলি ওয়েব্যাক মেশিনের দিকে ইঙ্গিত করে। আমি অনুমান সর্বশেষ সংস্করণ পাওয়া যাবে sourceforge.net/projects/webcamstudio
Denilson SA Maia,

"ওয়েবক্যামস্তুডিও আরও বেশি কিছু পরিচালিত নেই": /
রাফেল

2

প্রথমত, edit.in সম্ভবত কোনও সমস্যা ছাড়াই আপনি যা চান তা করতে পারে (আমি অনুমোদিত নয়): http://appear.in/

দ্বিতীয়ত, আপনি ওবিএস ব্যবহার করে টুইচ বা অন্যান্য পরিষেবাদিতে স্ট্রিম করতে পারেন, যা সম্প্রতি লিনাক্স সমর্থন (!) যুক্ত করেছে: https://obsproject.com/

উবুন্টুতে স্ক্রিন ক্যাপচার করার সময় ওবিএস ম্যাক্সিং সিস্টেম সাউন্ড এবং অডিও ইনপুটটির আরও কঠিন সমস্যা সমাধান করে ( universeআমি এখনও পাওয়া রেপোর কোনও কিছুর দ্বারা সমাধান হয়নি )।

আমার কাছে দুর্দান্ত কোনও ইউনিক্স-ওয়াই সমাধান নেই। কিন্তু যারা সত্যিকারের বিশ্বে আমার পক্ষে কাজ করেছিল।


ডেবিয়ান উপর OBS স্টুডিও: tracker.debian.org/pkg/obs-studio
myrdd
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.