হার্ডওয়্যার-H264-এনকোডিং থেকে আমি কী গতি আশা করতে পারি?


29

আমি উইকিপিডিয়া-নিবন্ধে হোঁচট খেয়েছি যে ব্রডকম জিপিইউ কেবলমাত্র ডি- কোডিং নয়, এইচ .264 / এভিসি এনকোডিংয়ের জন্য হার্ডওয়্যার সমর্থন করে ।

আমি ffmpegএকটি নিবন্ধও পেয়েছি যেখানে এইচ 264 / এমপি 4 ভিডিও ফাইল উত্পন্ন করার জন্য কেউ উদাহরণ দিয়েছিল । ঠিক আছে, এটি একটি বিশেষায়িত জিপিইউ সহ একটি সাধারণ-উদ্দেশ্য সিপিইউ, যাতে এটি অবাক হওয়ার মতো না।

তবে গড় গ্রাফিক্স-কার্ডের সাথে একটি স্ট্যান্ডার্ড ডেস্কটপ পিসির তুলনায়, রাস্পবেরি পাই সম্ভবত এইচ .264 / এভিসি সম্ভবত আরও দ্রুত এনকোড করবে ? যদি কোনও ডেস্কটপ ব্যবহারকারী তাকে ffmpegতার কোর -55xxx এর সাথে 150 ডলার এতি / এনভিডিয়া গ্রাফিক্স কার্ড দিয়ে অনুকূলিত করে তোলে ... তবে কি এই সংমিশ্রণটি "হার্ডওয়্যার এইচ .264 এনকোডিং সমর্থন" এর পথে কোনও প্রস্তাব দেয়? যদি তা না হয় তবে একটি বিশেষভাবে গৃহীত রাস্পবেরি-পাই-ffmpeg আরও দ্রুত হবে? যদি হ্যাঁ, একটি গতি তুলনা ইতিমধ্যে আছে?


আমার মনে করা উচিত নয় যে রাস্পবেরি পাই কোনও ডেস্কটপ পিসির চেয়ে দ্রুত হবে।
জিভিংস

5
কারও উচিত স্পষ্টভাবে একটি মানদণ্ড করা এবং কিছু ফলাফল প্রদর্শন করা উচিত।
এক্সটিএল

@ এক্সটিএল আপনি কি এটি করতে পারেন? ;-)
টাও

এটি খুব ভাল ফলাফল। আপনি দয়া করে উদাহরণ কমান্ডে অডিও ট্রান্সকোডিং যুক্ত করতে পারেন?

উত্তর:


5

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

আমি জানি না কেউ এই বিষয়ে কাজ করছে কিনা, তবে একজন বিকাশকারী বিদ্যমান প্রকল্পে এই জাতীয় মডিউলকে সংহত করার ব্যাপারে হতাশাবাদীlibav বলে মনে করছেন (২ রা ডিসেম্বর, ১৯:২৩) তার উত্তর দেখুন)।libav

যখন কোনও গ্রন্থাগার বা সফ্টওয়্যার এটির অনুমতি দেয় আমি বেঞ্চমার্কটি করতে পেরে খুশি হব।


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

2
জিস্ট্রিমার লাইব্রেরি ব্রডকম চিপস ওপেনম্যাক্স এপিআইতে প্রবেশ করতে সক্ষম, এবং এটি হার্ডওয়্যার এনকোডিং করতে সক্ষম বলে মনে হচ্ছে: gstreamer.freedesktop.org/releases/gst-omx/1.0.0.html
স্পিডপ্লেন

25

২০১ April সালের এপ্রিল পর্যন্ত জিপস্ট্রিমার ১.২ রাস্পবিয়ান অন্তর্ভুক্ত ওপেনম্যাক্স হার্ডওয়্যারকে ওএমএক্সএইচ 264 এএনসি মাধ্যমে তীব্র H.264 এনকোডিং সমর্থন করে।

আমি তুলনা করে কিছু বেঞ্চমার্কিং করেছি:

  1. ম্যাকবুক প্রো (প্রথম দিকে 2011) ডুয়াল কোর i7-2620M 2.7GHz (স্যান্ডি ব্রিজ) - 4 জিবি র‌্যাম
  2. রাস্পবেরি পাই 2 মডেল বি 900MHz কোয়াড-কোর এআরএম কর্টেক্স-এ 7 সিপিইউ - 1 জিবি র‌্যাম

নমুনা ফাইল: আলাটিরিস্ট (2006) চলচ্চিত্রের 60 এর নমুনা। মূল ফাইলটি 1080p এবং 30MB নেয়। আমি ফাইলটি 720p এ ট্রান্সকোড করেছি। ভিডিও ট্রান্সকোডিংয়ের উপর অধ্যয়নকে মনোনিবেশ করতে সমস্ত অডিও ট্র্যাক উপেক্ষা করা হয়েছিল।

ফলাফল:

(1) এ, হ্যান্ডব্রেক (x264 কোডেক) ব্যবহার করে আমি এক্স 264-সেটিংস খুব কম এবং গড় বিটরেট 1145 কেবিপিএস (1-পাস) দিয়ে ট্রান্সকোড করেছি যার ফলস্বরূপ 7.7MB ফাইল হয়েছিল। প্রোফাইল উচ্চ, স্তর 4.0। এনকোডিংটি 4 টি থ্রেড ব্যবহার করে 3 মিনিট 36 সেকেন্ড নিয়েছে। হ্যান্ডব্রেকের মোট চালিত সিপিইউ চার্জ ~ 380%। ভিডিওর মানটি খুব ভাল ছিল। ছোট্ট নিদর্শনগুলি পর্যবেক্ষণ করা যেতে পারে এবং বিশদ হারানো সহজে পর্যবেক্ষণযোগ্য নয়। নীচে এখনও দেখুন।

(2) এ, জিস্ট্রিমার এবং ওএমএক্স 264 এএনসি (হার্ডওয়্যার এক্সিলারেটেড) ব্যবহার করে আমি টার্গেট-বিটরেট = 1145000 (1145 কেবিপিএস), কন্ট্রোল রেট = 1 (ভেরিয়েবল বিটরেট কন্ট্রোল পদ্ধতি) দিয়ে ট্রান্সকোড করেছি যার ফলস্বরূপ 6.9 এমবি ফাইল। এনকোডিংটি 1 টি থ্রেড ব্যবহার করে 7 মিনিট 4 সেকেন্ড নিয়েছিল। জিএসটি-লঞ্চ -১.০ ~ ১০০% এর মোট জমে থাকা সিপিইউ চার্জ। ভিডিওর গুণমানটি নিখুঁতভাবে নিদর্শনগুলির সাথে হ্রাস করা হয়েছিল যা স্পষ্টভাবে দৃশ্যমান এবং সহজেই পর্যবেক্ষণযোগ্য বিশদে হ্রাস পেয়েছে। নীচে এখনও দেখুন।

gst-launch-1.0 -v filesrc location=sample-1080p.mp4 ! decodebin ! videoconvert ! \
videoscale ! video/x-raw,width=1280,height=688 ! omxh264enc control-rate=1 \
target-bitrate=1145000 ! h264parse ! mp4mux ! \
filesink location=sample-720p-OMX-1145kbps.mp4

এক্স 264enc সহ জিস্ট্রেমারকে এনকোডার হিসাবে ব্যবহার করার সময়, জিএসটি-লঞ্চ -১.০ এর মোট জমে থাকা সিপিইউ চার্জ প্রায় 380% হয়ে যায়, যা ওমএক্সএইচ 264enc আসলে জিপিইউ ব্যবহার করে তা সমর্থন করে। এছাড়াও, (2) x264enc সহ সময় 15 মিনিটের বাইরে চলে যায়।

উপসংহার:

মোটামুটি অনুরূপ ফাইল আকারের জন্য, হার্ডওয়্যার-ত্বরণযুক্ত রাস্পবেরি পাই 2 জিপিইউ এনকোডারটি দ্বৈত কোর i7-2620M এর সফ্টওয়্যার x264 এনকোডারের চেয়ে প্রায় দ্বিগুণ হয়েছিল। অডিও ট্রান্সকোডিং এবং মাল্টিপ্লেক্সিং যুক্ত করা এই পরীক্ষার সময় রাস্পবেরি পাই-তে বেশিরভাগ অব্যবহৃত সিপিইউয়ের কারণে কিছুটা ফাঁক হয়ে যেতে পারে। সফ্টওয়্যার-এনকোড করা ফাইলটিতে ভিডিওর গুণমান স্পষ্টতই সেরা ছিল। নীচে স্থির দেখুন।

ওএমএক্সএইচ 264 ইএনসি জন্য উপলব্ধ কনফিগারেশন বিকল্পগুলি (জিএসপি-ইন্সপেক্ট -১.০ দ্বারা প্রকাশিত) x264 এনকোডারের তুলনায় সীমাবদ্ধ তবে আরও পরীক্ষামূলকভাবে আরও ভাল মানের সরবরাহ করা যেতে পারে।

অ্যানেক্স:

রাস্পবিয়ান সংগ্রহস্থলগুলি থেকে জিস্ট্রিমার এবং ওপেনম্যাক্স ইনস্টলেশন:

$ apt-get install libgstreamer1.0-0 libgstreamer1.0-0-dbg libgstreamer1.0-dev liborc-0.4-0 liborc-0.4-0-dbg liborc-0.4-dev liborc-0.4-doc gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 gstreamer1.0-alsa gstreamer1.0-doc gstreamer1.0-omx gstreamer1.0-plugins-bad gstreamer1.0-plugins-bad-dbg gstreamer1.0-plugins-bad-doc gstreamer1.0-plugins-base gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-base-dbg gstreamer1.0-plugins-base-doc gstreamer1.0-plugins-good gstreamer1.0-plugins-good-dbg gstreamer1.0-plugins-good-doc gstreamer1.0-plugins-ugly gstreamer1.0-plugins-ugly-dbg gstreamer1.0-plugins-ugly-doc gstreamer1.0-pulseaudio gstreamer1.0-tools gstreamer1.0-x libgstreamer-plugins-bad1.0-0 libgstreamer-plugins-bad1.0-dev libgstreamer-plugins-base1.0-0 libgstreamer-plugins-base1.0-dev
$ gst-launch-1.0 --version
gst-launch-1.0 version 1.2.0
GStreamer 1.2.0

ম্যাকবুক প্রোতে হ্যান্ডব্রেক (x264) ব্যবহার করে 720p ভিডিওর ট্রান্সকোড হওয়া এখনও কুইটটাইম এক্স (সম্পূর্ণ বিবরণের জন্য চিত্রটি খুলুন বা ডাউনলোড করুন):

ম্যাকবুক প্রোতে হ্যান্ডব্র্যাক (x264) ব্যবহার করে 720p ভিডিওর ট্রান্সকোডড থাকা কুইকটাইম এক্স এখনও

জিপিস্ট্রিমার (ওপেনএমএক্স-এর মাধ্যমে হার্ডওয়্যার এনকোডিং) রাস্পবেরি পাই 2 (সম্পূর্ণ বিবরণের জন্য চিত্রটি খুলুন বা ডাউনলোড করুন) ব্যবহার করে ট্রান্সকোড করা 720p ভিডিওর কুইকটাইম এক্স এখনও

রাস্পবেরি পাই 2 তে এখনও জিপিস্ট্রিমার (ওপেনম্যাক্সের মাধ্যমে হার্ডওয়্যার এনকোডিং) ব্যবহার করে 720p ভিডিওর কুইকটাইম এক্স এখনও ট্রান্সকোড হয়েছে

হালনাগাদ:

অনুসরণ করছেন ecc29 এর পরামর্শ পদ্ধতি স্কেলিং lanczos ব্যবহারের আমি একটি পরীক্ষা যোগ সঞ্চালিত method=lanczosকরতে videoscale। এনকোডিং প্রক্রিয়াটি সময়ে দ্বিগুণ হয়ে প্রায় প্রায় 7 মিনিট থেকে 14 মিনিট 37 এ চলে যায়। ফলাফলটি বিনা পদ্ধতিতে (ডিফল্ট বিলিনার) মানের সাথে প্রায় সমান। প্রকৃতপক্ষে, ত্রুটিগুলি সাধারণত হার্ডওয়্যারে এনকোডিং প্রক্রিয়া থেকে আসে। তারা স্পষ্টভাবে সংক্ষেপণ নিদর্শন।


জিস্ট্রিমার ট্রান্সকোডিংয়ের পরে চিত্রের মানের জন্য, অন্য একটি বিষয় বিবেচনা করা উচিত। Gstreamer omxh264enc এ পাঠানোর আগে ভিডিওস্কেলের বিভিন্ন পরামিতিগুলির চিত্রটিতে প্রভাব পড়বে। ভিডিওসકેલ বিলিআনারকে ডিফল্ট বিকল্প হিসাবে ব্যবহার করে। ল্যাঙ্কজোস আরও ভাল তবে এটি খুব ধীর। Gstreamer এর বিকাশকারীরা ভিডিওস্কেলের জন্য আরও বিকল্পে কাজ করছেন, তবে তারা এখনও স্থিতিশীল প্রকাশে নেই। কিছু উত্পন্ন নিদর্শন বিভিন্ন বিকল্পের সাথে তুলনা করতে সহায়ক হতে পারে:
ecc29

gst-launch-1.0 -e videotestsrc pattern=zone-plate kx2=80 ky2=45 num-buffers=1 ! video/x-raw, width=1920, height=1080 ! videoconvert ! videoscale method=lanczos ! video/x-raw, width=1280, height=720 ! avimux ! filesink location=lanczos_1280.avi
ecc29

আমি lanczosস্কেলিং পদ্ধতির ফলাফলগুলি সহ পোস্টটি আপডেট করেছি ।
এম। রুবিও-রায়

3 বি + কেনার কথা ভাবছেন। সাড়ে তিন বছর পরে কোন আপডেট? রিয়েল-টাইম এনকোডিং এখন সম্ভব?
akostadinov

1

আরপিআই-এর জিপিইউ বেশ সুন্দর। আমি পড়েছি এনকোডিংয়ের ক্ষেত্রে আপনি 1080p @ 30fps এনকোড করতে পারেন। এছাড়াও একাধিক স্ট্রিম এনকোডিং করাও সম্ভব। এটিও বিশ্বাস করা হয় যে আপনি আরপিআই ব্যবহার করে ফ্লাইতে বিডোসগুলি এনকোড করতে পারেন।

কিন্তু। আধুনিক দিনের গ্রাফিক্স কার্ডগুলিতে জিপিইউতে পুরো এনকোড চালানোর ক্ষমতা রয়েছে যা জিপিইউতে আসলেই ভাল।

আমি যদি একটি ব্যক্তিগত মতামত गेজ করতে হয়। এটি এমন হবে যে কোনও মিডিয়াম স্পেস গ্রাফিক্স কার্ডের চেয়ে আরপিআই দ্রুত নয়। তবে আমি মনে করি যে এটি আপনি যা ভাবেন তার চেয়ে অনেক দ্রুত হবে। এমনকি 75% গতির কাছাকাছিও হতে পারে।

আমি কোথাও একটি তুলনা পাওয়া যায় নি।

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