ffmpeg YUYV ব্যবহার করে ওয়েবক্যাম খুলুন তবে আমি এমজেপিইগ চাই


14

এমজেপিইজি মোডে ওয়েবক্যাম (লজিটেক সি 910) খোলার জন্য আমার ffmpeg প্রয়োজন, কারণ ওয়েবক্যাম এমজেপিগ "প্রোটোকল" ব্যবহার করে 24 ডলার দিতে পারে এবং কেবল ইউইওয়াইভি ব্যবহার করে 10 ডলার দিতে পারে। আমি কি তাদের মধ্যে ffmpeg কমান্ড লাইন ব্যবহার করে চয়ন করতে পারি?

xx@(none) ~ $ v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
    Index       : 0
    Type        : Video Capture
    Pixel Format: 'YUYV'
    Name        : YUV 4:2:2 (YUYV)

    Index       : 1
    Type        : Video Capture
    Pixel Format: 'MJPG' (compressed)
    Name        : MJPEG

আমার বর্তমান কমান্ড লাইন:

ffmpeg -y -f alsa -i hw:3,0 -f video4linux2 -r 20 -s 1280x720 -i /dev/video0 -acodec libfaac -ab 128k -vcodec libx264 /tmp/web.avi

আমি ওয়েবক্যাম থেকে রেকর্ড করলে ffmpeg দূষিত এইচ 264 স্ট্রিম তৈরি করে, তবে আমি এক্স 11 গ্র্যাব থেকে রেকর্ড করলে স্বাভাবিক h264 স্ট্রিম। আর একটি কোডেক (এমজেপেইগ, এমপিইজি 4) ওয়েবক্যামের সাথে ভালভাবে কাজ করে ... তবে এটি অন্য গল্প।

সম্পূর্ণ ffmpeg এর কনসোল আউটপুট আপডেট করুন : http://pastebin.com/Hzem6CKF (আপনি দেখতে পারেন এটি ইউইউভি মোডে ভিডিও ডিভাইস খোলে, কিন্তু ডিভাইসটি এমজেপিইজি আউটপডও সরবরাহ করতে পারে)।

উত্তর:


13

আপনার ওয়েবক্যাম কী দিয়ে আউটপুট পেতে পারে সে সম্পর্কে আপনি অতিরিক্ত তথ্য তালিকাভুক্ত করতে পারেন v4l2-ctl --list-formats-ext। আপনি -list_formatsইনপুট বিকল্পটি ব্যবহার করে ffmpeg দিয়ে ওয়েবক্যামের তথ্যও প্রদর্শন করতে পারেন :

$ ffmpeg -f video4linux2 -list_formats all -i /dev/video0
[...]
[video4linux2,v4l2 @ 0x1fb7660] Raw       :   yuyv422 :     YUV 4:2:2 (YUYV) : 640x480 160x120 176x144 320x176 320x240 352x288 432x240 544x288 640x360
[video4linux2,v4l2 @ 0x1fb7660] Compressed:     mjpeg :                MJPEG : 640x480 160x120 176x144 320x176 320x240 352x288 432x240 544x288 640x360

আমার উদাহরণ থেকে এই ওয়েবক্যামটি কাঁচা ( yuyv422) এবং সংক্ষেপিত ( mjpeg) উভয় ফর্ম্যাটকে সমর্থন করতে পারে ffmpegএবং -input_formatইনপুট বিকল্পের সাথে আপনি কোনটি চান তা বলতে পারেন ।

উদাহরণ

স্ট্রিমটি এমজেপিইজি ভিডিও স্ট্রিমটি অনুলিপি করুন (পুনরায় এনকোডিং নেই):

ffmpeg -f v4l2 -input_format mjpeg -i /dev/video0 -c:v copy output.mkv

কাঁচা ওয়েবক্যাম ভিডিওটি H.264 এ পুনরায় এনকোড করুন:

ffmpeg -f v4l2 -input_format yuyv422 -i /dev/video0 -c:v libx264 -vf format=yuv420p output.mp4

উপরের মতো একই তবে ফ্রেম রেট এবং ভিডিও আকার ম্যানুয়ালি চয়ন করুন ( v4l2-ctl --list-formats-extউপলব্ধ ফ্রেম রেট এবং ভিডিও আকারের জন্য):

ffmpeg -f v4l2 -input_format yuyv422 -framerate 30 -video_size 640x480 -i /dev/video0 -c:v libx264 -vf format=yuv420p output.mp4
  • দেখুন video4linux2 ইনপুট ডিভাইস আরও বিকল্পের জন্য ডকুমেন্টেশন।

  • যদি ফ্রেম রেট আউটপুট হিসাবে প্রত্যাশার চেয়ে কম হয় তবে আরও হালকা যুক্ত করুন: ওয়েবক্যাম ম্লান পরিবেশে দীর্ঘ এক্সপোজার পেতে ফ্রেম রেট কমিয়ে আনতে পারে।


0
ffmpeg -t 60 -f video4linux2 -input_format mjpeg -i /dev/video0 -c:v libx264 -strict -2 /DataVolume/share/Public/v/outputs.mp4

4
সুপার ব্যবহারকারীকে স্বাগতম! আপনি এই উপর প্রসারিত করতে পারেন? বিশেষত, লর্ডনকবার্ডের কী তথ্য নেই? :)
বার্তেব

প্রয়োজন নেই কারণ -strict -2: 1) আপনার ffmpegমারাত্মক পুরানো এবং 2) আপনি এএসি অডিওকে এনকোড করছেন।
লগন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.