জেলিফিন FFMpeg ব্যবহার করে ভিডিও এনকোডিং / ডিকোডিংয়ের হার্ডওয়্যার ত্বরণ (HWA) সমর্থন করে। এফএফএমপেইগ এবং জেলিফিন ভিডিও এক্সিলারেশন এপিআইয়ের মাধ্যমে একাধিক হার্ডওয়্যার এক্সিলারেশন বাস্তবায়ন যেমন ইন্টেল কুইসিসিঙ্ক (কিউএসভি), এএমডি এএমএফ, এনভিডিয়া এনভিএনসি / এনভিডিইসি, ওপেনম্যাক্স ওএমএক্স এবং মিডিয়া কোডেক সমর্থন করতে পারে।
ভিএপিআই হ'ল একটি ভিডিও ত্বরণ API কিউএসভি VAAPI এর একটি সংশোধিত (কাঁটাচামচ) সংস্করণ ব্যবহার করে এবং এটি libmfx এবং এর মালিকানাধীন ড্রাইভারদের (কিউএসভি-সামঞ্জস্যপূর্ণ প্রসেসরের তালিকা) সাথে ইন্টারফেস করে।

ওএস প্রস্তাবিত এইচডাব্লু এক্সিলারেশন লিনাক্স কিউএসভি, এনভিইএনসি, ভিএপিআই উইন্ডোজ কিউএসভি, এনভিএনসি, এএমএফ, ভ্যাপিমাকোসন (ভিডিওটুলবক্স শীঘ্রই আসছে) অ্যান্ড্রয়েডমিডিয়া কোডেক, ওএমএক্সআরপিওএক্সএক্স
HWA ব্যবহার করে গ্রাফিক্স কার্ডের তুলনা
এনভিআইডিআইএ অফিসিয়াল ffmpeg তালিকা ব্যবহার করে। সমস্ত কার্ড পরীক্ষা করা হয়নি। এই ড্রাইভারগুলি লিনাক্স এবং উইন্ডোজের জন্য প্রস্তাবিত। সমর্থিত কোডেকগুলির জন্য এনভিআইডিএ গ্রাফিক্স কার্ডের আনুষ্ঠানিক তালিকা এখানে। উবুন্টু এনভিএনসি-র সাথে কাজ করার উদাহরণ। এইচ 264 10-বিট এনভিআইডিএ ত্বরণকে সমর্থন করে না।
ভিএএপিআই দ্বারা সমর্থিত কোডেকগুলির তালিকা।
এএমএফ লিনাক্স সমর্থনটি এখনও অফিসিয়াল নয় এবং এএমডি জিএফএক্স কার্ডগুলি অবশ্যই লিনাক্সে ভিএএপিআই ব্যবহার করতে পারে।
জেন কেবলমাত্র সিপিইউ। ভিডিও ডিকোডিং / এনকোডিংয়ের কোনও ফর্মের জন্য কোনও হার্ডওয়্যার ত্বরণ নেই। হার্ডওয়্যার ত্বরণের জন্য আপনার একটি এপিইউ বা একটি ডিজিপিইউ প্রয়োজন।
লিনাক্সে ইন্টেল কিউএসভি বেঞ্চমার্ক।
উইন্ডোজে, আপনি ডিকোডিংয়ের জন্য DXVA2 / D3D11VA লাইব্রেরি এবং এনকোডিংয়ের জন্য libmfx লাইব্রেরি ব্যবহার করতে পারেন।
সেন্টোসের কিউএসভি-র জন্য অতিরিক্ত ড্রাইভারের প্রয়োজন হতে পারে।
আরও জানার জন্য এখানে অতিরিক্ত তথ্য is
হার্ডওয়্যার ত্বরণ সক্ষম করা
বিভাগে অ্যাডমিন ড্যাশবোর্ডে হার্ডওয়্যার ত্বরণ বিকল্পগুলি পাওয়া যাবে ট্রান্সকোডিং । ড্রপ-ডাউন মেনু থেকে একটি বৈধ হার্ডওয়্যার ত্বরণ বিকল্পটি নির্বাচন করুন, প্রযোজ্য ক্ষেত্রে কোনও ডিভাইস নির্দেশ করুন এবং এনক্রিপশন সক্ষম করতে হার্ডওয়্যার এনক্রিপশন সক্ষম করার পাশাপাশি আপনার হার্ডওয়্যার সমর্থন করে তবে ডিকোডিং পরীক্ষা করুন।
হার্ডওয়্যার ত্বরণ তত্ক্ষণাত মিডিয়া প্লেব্যাকের জন্য উপলব্ধ। সার্ভারটি পুনরায় চালু করার দরকার নেই।
কনফিগারেশন
প্রতিটি ধরণের হার্ডওয়্যার ত্বরণ, পাশাপাশি প্রতিটি ধরণের জেলিফিন ইনস্টলেশন ব্যবহারের আগে বিভিন্ন কনফিগারেশন বিকল্পের প্রয়োজন। সর্বশেষ তথ্যের জন্য আপনি যে ধরণের ত্বরণ চয়ন করেন সে সম্পর্কে এফএফএমপিগ ডকুমেন্টেশনের সাথে পরামর্শ করা সর্বদা সেরা।
ডকারে ত্বরণ
ডকারে হার্ডওয়্যার ত্বরণ ব্যবহার করার জন্য, ডিভাইসগুলি অবশ্যই পাত্রে স্থানান্তরিত করতে হবে। কোন ভিডিও ডিভাইস উপলব্ধ তা দেখতে আপনি নিজের মেশিনে sudo lshw -c ভিডিও বা ভ্যানফো চালাতে পারেন।
নোট
এনভিআইডিএ জিপিইউ বর্তমানে ডকার-কমপোজ সমর্থন করে না।
আপনি নিম্নলিখিত হিসাবে একটি কমান্ড দিয়ে সার্ভার শুরু করতে ডকার রান ব্যবহার করতে পারেন।
ডকার চালিত -d --volume / path / to / config: / config --volume / path / to / cache: / cache --volume / path / to / মিডিয়া: / মিডিয়া u -উজার 1000: 1000 --net = হোস্ট - রিস্টার্ট = অবিরাম-স্টপ - দেব / দেব / ড্রাই / রেন্ডারড 128: / দেব / ড্রি / রেন্ডারড 128 - দেবতা / দেব / ড্রাই / কার্ড0: / দেব / ড্রি / কার্ড0 ~ জেলিফিন / জেলিফিন
বিকল্পভাবে, আপনি একটি কনফিগারেশন ফাইলের সাথে ডকার-রচনা ব্যবহার করতে পারেন যাতে আপনার সার্ভারটি পুনরায় চালু করার সময় আপনাকে লং কমান্ডটি চালাতে হবে না।
সংস্করণ: "3" পরিষেবাগুলি: জেলিফিন: চিত্র: জেলিফিন / জেলিফিন ব্যবহারকারী: 1000: 1000 নেটওয়ার্ক_মোড: "হোস্ট" ভলিউম: - / পাথ / টু / কনফিগারেশন: / কনফিগারেশন / / পাথ / থেকে / ক্যাশে: / ক্যাশে - / পথ / থেকে / মিডিয়া: / মিডিয়া ডিভাইস: 1 টিপি 3 টি ভিএপিআই ডিভাইস - / দেব / ড্রাই / রেন্ডারড 128: / দেব / ড্রাই / রেন্ডারড 128 - / ডিভ / ড্রাই / কার্ড0: / দেব / ড্রাই / কার্ড0 1 পিপি 3 টি আরপিআই 4 - / দেব / ভিচিঃ: / দেব / কিচিক
দেবিয়ান ডকার এনভিডিয়া
ডকার ব্যবহার করে হার্ডওয়্যার ত্বরণ অর্জন করতে, বেশ কয়েকটি পদক্ষেপের প্রয়োজন।
পূর্বশর্ত:
https://github.com/nvidia/nvidia-docker/wiki/Installation-(versión-2.0)
কার্নেল সংস্করণ সহ জিএনইউ / লিনাক্স x86_64; 3.10 ডকার; = 1.12 আর্কিটেকচার সহ এনভিআইডিআইএ জিপিইউ; ফার্মি (২.১) এনভিআইডিএ ড্রাইভার ~ = ৩~১.৯৩ (পূর্ববর্তী সংস্করণে পরীক্ষিত নয়)
আপনার GPU এই কমান্ডের সাথে উপস্থিত হয়েছে তা নিশ্চিত করুন।
lspci | গ্রেপ ভিজিএ
আপনার হোস্টটি আপডেট করুন যাতে পুরানো সফ্টওয়্যার সমস্যার কারণ হওয়ার কোনও সম্ভাবনা নেই।
apt-get আপডেট && এপ-গিস্ট ডিস্ট-আপগ্রেড -y
প্রয়োজনীয় ফাইলগুলি ডাউনলোড করতে ব্যবহৃত কার্ল ইনস্টল করুন।
অ্যাপ্লিকেশন - কার্ল ইনস্টল করুন
/Etc/apt/sources.list এ উত্সগুলি তালিকা সম্পাদনা করুন এবং প্রতিটি উত্সে প্রয়োজন অনুসারে অ-মুক্ত অবদান যুক্ত করুন।
দেব http://ftp.ch.debian.org/debian/ প্রসারিত প্রধান
উদাহরণস্বরূপ নিম্নলিখিত লাইনটি মেলানোর জন্য উপরের লাইনটি সংশোধন করতে হবে।
দেব http://ftp.ch.debian.org/debian/ প্রসারিত মূল অ-মুক্ত অবদান
এনভিডিয়া ডক ধারক ফন্টগুলি ডাউনলোড করুন এবং যুক্ত করুন।
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key adddist वितरण = $ (। / etc / os-release; প্রতিধ্বনি $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/$ististrib/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
নতুন ভাণ্ডারে উপলব্ধ সর্বশেষতম সফ্টওয়্যারটি ডাউনলোড করতে আপনার প্যাকেজ তালিকাটি আপডেট করুন।
অ্যাপেট-গেট আপডেট
লিনাক্স-হেডারগুলি ইনস্টল করুন এবং নিম্নলিখিত কমান্ডটি চালান।
apt-get linux-headers-$ ইনস্টল করুন (uname -r | $0027s / [^ -] * - [^ -] * - // $0027)
বিকল্পভাবে, আপনি যদি সামঞ্জস্যের প্রতিযোগিতায় থাকেন তবে এই কমান্ডটি চালান।
apt-get ইনস্টল -t প্রসারিত-ব্যাকপোর্টগুলি লিনাক্স-শিরোলেখগুলি -1 টিটি 2 টি (আনামে -আর | সেড $0027s / [^ -] * - [^ -] * - // $0027)
সংগ্রহস্থল থেকে এনভিডিয়া ডকার 2 ইনস্টল করুন।
এনভিডিয়া-ডকার 2 ইনস্টল করুন
রক্ষণাবেক্ষণ প্যাকেজটি বজায় রাখতে বা ইনস্টল করার জন্য যখন অনুরোধ করা হয়, রক্ষণাবেক্ষণ রিলিজটি ইনস্টল করতে y টাইপ করুন।
ইনস্টলেশনের পরে আপনি এনভিডিয়াকে ডিফল্ট রানটাইম হিসাবে যুক্ত করতে চাইতে পারেন: /etc/docker/daemon.json এটিকে সম্পাদনা করে:
<"Default Runtime": "nvidia", "runtimes": { "nvidia": { "camino": "nvidia-contenedor-tiempo de ejecución", "runtimeArgs": [] } }}
বর্তমানে কাজ করা স্টিভডোরের পরিষেবাগুলি পুনরায় চালু করুন।
sudo pkill -SUPUP ডকার
এনভিডিয়া ড্রাইভার এবং নির্ভরতা ইনস্টল করুন।
অ্যাপটি-ইনস্টল -t প্রসারিত-ব্যাকপোর্টগুলি এনভিডিয়া-ড্রাইভার libnvcuvid1 libnvidia-encode1 libcuda1 nvidia-smi
সমস্ত পরিবর্তন প্রয়োগ করতে দয়া করে আপনার হোস্টটি পুনরায় চালু করুন।
এখন আবার চালু করুন
আপনার ড্রাইভার এবং কাপলার এই টেস্ট ড্রাইভটি সঠিকভাবে কনফিগার করেছেন তা যাচাই করুন।
এনভিডিয়া-স্মিডোকার রান --gpus 0 এনভিডিয়া / চুদা: 9.0-বেস এনভিডিয়া-এসএমআই
হোস্ট এবং স্টিভডোরের প্রয়োজনীয় সংস্থানগুলিতে অ্যাক্সেসকে বৈধতা দিন।
ldconfig -p | grep cuvidldconfig -p | গ্রেপ লিবিএনভিডিয়া-এনকোড.সো
সেই পরিবেশের পরামিতিগুলি যুক্ত করে আপনার ধারকটি শুরু করুন।
-এই "এনভিআইডিআইএ_ডিআরআইভিসিপিএবিএলবিটিস = সমস্ত" -ই এনভিআইডিআইএ_ভিসিআইবিএল_ডিইকিউএস = সব - রুনটাইম = এনভিডিয়া - সবই
একটি সম্পূর্ণ নির্বাহকারী কমান্ড এর মত দেখতে হবে।
ডকার চালিত -ডি - নাম = জেলিফিন-এনভিআইডিআইএ_ডিআরআইভিসিপিএবিলিটিস = সমস্ত-এনভিআইডিআইএ_ভিসিআইবিএল_ডাইভাইস = সমস্ত - জিপিএস সমস্ত --runটাইম = এনভিডিয়া -p 8096: 8096 -পি 8920: 8920 -v / কনফিগারেশন / টিভি / মিডিয়া: / মিডিয়া -ভি / ক্যাশে: / ক্যাশে --restore না থামলে ~ জেলিফিন / জেলিফিন
পরের বিকল্পটি দিয়ে চলার সময় কয়েকটি বিশেষ পদক্ষেপ রয়েছে।
- ব্যবহারকারী 1000: 1000
আপনাকে এই ব্যবহারকারীকে ভিডিও গ্রুপে যুক্ত করতে হতে পারে।
ব্যবহারকারী - ব্যবহারকারী ভিডিও ব্যবহারকারী
ধারকটি শুরু হয়ে গেলে আপনি হোস্টের সংস্থানগুলিতে অ্যাক্সেসটিকে পুনরায় বৈধতা দিতে পারেন।
ডকার এক্সিকিউট-জেলিফিন ldconfig -p | grep cuviddocker exec -it jellyfin ldconfig -p | গ্রেপ লিবিএনভিডিয়া-এনকোড.সো
এখন জেলিফিন প্লেব্যাক সেটিংসে যান, এনভিডিয়া এনভিইএনসি সক্ষম করুন এবং ট্রান্সকোডিংয়ের দরকার হয় এমন কোনও ফাইল খেলতে আপনার জিপিইউ কী সমর্থন করে তার উপর নির্ভর করে লক্ষ্য কোডেকগুলি নির্বাচন করুন। বিটরেট পরিবর্তন করা এটি পরীক্ষা করার একটি ভাল উপায়।
ট্রান্সকোডিং লগগুলি পর্যালোচনা করুন যাতে সবকিছু ঠিকঠাক কাজ করছে তা নিশ্চিত করতে।
স্ট্রিম #0: 0 -----; #0: 0 (h264 (h264_cuvid) -------; h264 (h264_nvenc) স্ট্রিম #0: 2 -------; #0: 1 (ac3 (নেটিভ) -------; aac (নেটিভ))<-pre>.Deb প্যাকেজগুলি থেকে ডেবিয়ান / উবুন্টুতে VAAPI ত্বরণ স্থাপন করা হচ্ছে
অনুমতিগুলি সঠিক কিনা তা নিশ্চিত করতে দেবিয়ান / উবুন্টুতে ভিএপিআই কনফিগারেশনের জন্য কিছু অতিরিক্ত কনফিগারেশন প্রয়োজন।
আপনার সিস্টেমে VAAPI তথ্য পরীক্ষা করতে, কমান্ড লাইন থেকে ভ্যানফো ইনস্টল করুন এবং চালনা করুন।
- প্রাসঙ্গিক ডকুমেন্টেশন অনুসরণ করে আপনার সিস্টেমের জন্য VAAPI কনফিগার করুন। / ডি / ড্রাইভে এখন রেন্ডার ডিভাইস রয়েছে কিনা তা যাচাই করুন এবং এতে লেখার জন্য উপলব্ধ অনুমতি এবং গোষ্ঠী নোট করুন, এই ক্ষেত্রে রেন্ডার করুন: $ ls -l / dev / dritotal 0drwxr-xr-x 2 root 100 13 এপ্রিল 16:37 বাই-প্যাথক্রো-আরডব্লিউ ---- 1 টি রুট ভিডিও 226, 0 এপ্রিল 13 16:37 কার্ড0সিআরডব্লিউ ---- 1 টি রুট ভিডিও 226, 1 এপ্রিল 13 16:37 কার্ড1 ক্র-আরডব্লিউ ---- 1 রুট রেন্ডার 226, 128 এপ্রিল 13 16:37 রেন্ডার 1212 নোট কিছু সংস্করণে, গ্রুপটি রেন্ডারের পরিবর্তে ভিডিও হতে পারে।
- জেলিফিন পরিষেবা ব্যবহারকারীটিকে ডিভাইসে জেলিফিন এফএফএমপিগ প্রক্রিয়াটি অ্যাক্সেসের অনুমতি দিতে এবং জেলিফিন পুনরায় আরম্ভ করার জন্য পূর্ববর্তী গ্রুপে যুক্ত করুন।
sudo usermod -aG জেলিফিনসুডো সিস্টেমটেক্ট রিস্টার্ট জেলিফিন রেন্ডার করে
- প্রশাসক প্যানেলের "ট্রান্সকোডিং" পৃষ্ঠায় VAAPI ত্বরণ সেট করুন। VA API এর ডিভাইস মান হিসাবে উপরের ডিভাইস / dev / ড্রাইভ / রেন্ডারড ডি 128 লিখুন।
- একটি সিনেমা দেখুন এবং যাচাই করুন যে ffmpeg-transcode - *। Txt / var / log / jellyfin এর অধীনে এবং র্যাডটপ বা অনুরূপ সরঞ্জাম ব্যবহার করে ট্রান্সকোডিং হচ্ছে কিনা তা যাচাই করুন।
এলএক্সসি বা এলএক্সডি ধারক
এটি এলএক্সসি 3.0 দিয়ে পরীক্ষা করা হয়েছে এবং পূর্ববর্তী সংস্করণগুলির সাথে কাজ করতে বা নাও করতে পারে।
জেলিফিন ব্যবহারকারীকে তাদের অবস্থার উপর নির্ভর করে ভিডিওতে বা রেন্ডার গ্রুপে যুক্ত করতে উপরের পদক্ষেপগুলি অনুসরণ করুন।
- আপনার জিপিইউটি পাত্রে যুক্ত করুন।
$ lxc কনফিগার ডিভাইস অ্যাড gpu gpu gid = <gid de su video o grupo de renderización;
- আপনার ধারকটির ভিতরে কার্ডটি রয়েছে তা নিশ্চিত করুন:
1 টিপি 2 টি এলএক্সসি এক্সিকিউট জেলিফিন - এলএস-এল / দেব / ড্রিটোটাল 0 ক্রো-আরডব্লু ---- 1 টি মূল ভিডিও 226, 0 জুন 4 02:13 কার্ড0crw-rw ---- 1 রুট ভিডিও 226, 0 জুন 4 02:13 নিয়ন্ত্রণD64crw -আরড ---- 1 টি মূল ভিডিও 226, 128 জুন 4 02:13 রেন্ডার 128
- ভিডিও ত্বরণ ব্যবহার করতে জেলিফিন সেট করুন এবং যদি ডিফল্ট বিকল্পটি ভুল হয় তবে এটি সঠিক ডিভাইসে নির্দেশ করুন।
- এমন একটি ভিডিও প্লে করার চেষ্টা করুন যার জন্য ট্রান্সকোডিং দরকার এবং নিম্নলিখিতগুলি চালিত হয়, আপনার হিট হওয়া উচিত।
$ পিএস অক্স | grep ffmpeg | গ্রেপ অ্যাক্সেল
- ট্রান্সকোডিং প্রয়োজন এমন একটি ভিডিও প্লে করতেও আপনি চেষ্টা করতে পারেন এবং এটি খেললে আপনি ভাল।
দরকারী সংস্থানসমূহ:
রাস্পবেরি পাই 3 এবং 4
- জেলিফিনের এফএফএমপিগ প্রক্রিয়াটিকে এনকোডারে অ্যাক্সেসের অনুমতি দেওয়ার জন্য ভিডিও গ্রুপে জেলিফিন পরিষেবা ব্যবহারকারী যুক্ত করুন এবং জেলিফিন পুনরায় চালু করুন ud সুডো ব্যবহারকারী মডেল -এজি ভিডিও জেলিফিনসুডো সিস্টেমটেল পুনরায় আরম্ভ করুন জেলিফিননোট আপনি যদি রাস্পবেরি পাই 4 ব্যবহার করছেন তবে আপনাকে সুডো আরপি-আপডেট চালানোর প্রয়োজন হতে পারে কার্নেল এবং ফার্মওয়্যার আপডেটের জন্য।
- সার্ভার ড্যাশবোর্ডের ট্রান্সকোডিং ট্যাবে হার্ডওয়্যার ত্বরণ হিসাবে ওপেনম্যাক্স ওএমএক্স চয়ন করুন।
- জিপিইউতে বরাদ্দ হওয়া মেমরির পরিমাণ পরিবর্তন করুন। জিপিইউ তাত্ক্ষণিক ডিকোডিং এবং এনকোডিং একসাথে পরিচালনা করতে পারে না RPO4 এর জন্য sudo Nano /boot/config.txt, লাইনটি যোগ করুন gpu_mem = 320 এখানে আরও দেখুন RPi3 এর জন্য লাইনটি যোগ করুন gpu_mem = 256 আপনি কোনও মান নির্ধারণ করতে পারেন, তবে 320 পরিমাণটি 4K এইচইভিসির জন্য প্রস্তাবিত। সিপিইউ এবং জিপিইউ মেমরির মধ্যে বিভাজনটি পরীক্ষা করুন: vcgencmd get_mem আর্ম && vcgencmd get_mem জিপিইউ সিপিইউ ঘড়ির তাপমাত্রা এবং গতি নিরীক্ষণ করুন: vcgencmdasure_temp && vcgencmd পরিমাপ_ ক্লক আর্ম
নোট
আরপিআই 4 বর্তমানে এইচডব্লিউএ ডিকোডিং সমর্থন করে না, শুধুমাত্র এইচ 264 HWA এনকোডিং od সক্রিয় শীতলকরণ প্রয়োজন, প্যাসিভ কুলিং ট্রান্সকোডিংয়ের জন্য অপর্যাপ্ত। আরপিআই 3 পরীক্ষায়, ট্রান্সকোডিংটি রিয়েল টাইমে কাজ করার জন্য পর্যাপ্ত দ্রুত কাজ করে না কারণ ভিডিওর আকার পরিবর্তন করা হচ্ছিল।
ট্রান্সকোড যাচাই করা হচ্ছে
আপনি উপযুক্ত লাইব্রেরি ব্যবহার করছেন তা যাচাই করতে, আপনার ট্রান্সকোডিং রেকর্ডের বিরুদ্ধে এই কমান্ডটি চালান run এটি অ্যাডমিন ড্যাশবোর্ড> লগস এবং / var / লগ / জেলিফিনে পাওয়া যায় যদি এটি সংগ্রহস্থলের মাধ্যমে হয়।
গ্রেপ-এ 2 "স্ট্রিম ম্যাপিং: /var/log/jellyfin/ffmpeg-transcode-85a68972-7129-474c-9c5d-2d9949021b44.txtএটি নিম্নলিখিত ফলাফল পেয়েছে।
বর্তমান ম্যাপিং: #0 বর্তমান: 0 ----; #0: 0 (hevc (নেটিভ) ----; এইচ 264 (এইচ 264_omx)) বর্তমান #0: 1 ----; #0: 1 (aac (নেটিভ) ----; এমপি 3 (libmp3lame))#0: 0 স্ট্রিম HEVC ডিকোড করতে সফ্টওয়্যার ব্যবহার করেছে এবং এনকোডে HWA ব্যবহার করেছে।
#0: 1 স্ট্রিমের একই ফলাফল ছিল। এনকোডিংয়ের চেয়ে ডিকোডিং সহজ, সুতরাং এগুলি সাধারণত ভাল ফলাফল। এইচডব্লিউএ ডিকোডিং কাজ চলছে।