گیک فارسی

نوشته های یک گیک فارسی از فعالیت ها ،‌ علاقه مندی ها و نقد هایش

رفع مشکل عدم نمایش ویدئوها و مشکلات Codec در لینوکس

نویسنده:
6 آوریل 20

یکی از مشکلاتی که خیلی از دوستان پس از نصب لینوکس باهاش مواجه می‌شوند این هست که میخوان ادامه سریال یا فیلم جدیدی که به تازگی دانلود کردند را پس از نصب لینوکس ببیند ولی وقتی با Player لینوکس فیلم را باز میکنند با خطاهای عدم وجود Codec مربوطه مواجه می‌شوند یا فقط صدا میشنوند و تصویری در کار نیست!

با توجه به اینکه اکثر Codec های موجود به صورت آزاد و متن باز منتشر نمی‌شوند به صورت پیش‌فرض توزیع لینوکس شما قادر به نمایش ویدئو‌های مرتبط با این Codec ها نخواهد بود که البته بسیاری از توزیع‌های لینوکسی از جمله توزیع پرطرفدار اوبونتو در زمان نصب یک Checkbox مرتبط با نصب اینگونه Package های غیر رایگان و غیر متن باز دارند که شاید بدون توجه از آن رد شده باشید.

خوب به هر حال این Codec ها نصب نشده‌اند ولی می‌توانید از طریق دستورات زیر لینوکس را برای پخش چنین ویدئو‌هایی آماده کنید:

sudo apt update
sudo apt install libdvdnav4 libdvdread4 gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly libdvd-pkg
sudo apt install ubuntu-restricted-extras

همچنین توصیه میکنم برای بهترین تجربه ممکن از VLC Media Player استفاده کنید.

sudo apt install vlc

پردازش و نمایش سخت افزاری ویدئو (Hardware Video Acceleration) با کارت گرافیکی اینتل

نویسنده:
3 آوریل 17

اگه اهل فیلم و سریال باشین و به توزیع‌های لینوکسی مهاجرت کنین ، یکی از مواردی که خیلی توی ذوق میزنه کیفیت پایین پخش فایل‌های ویدئویی در لینوکس هست. عموما دوستان دنبال رفع مشکلات نصب کارت گرافیکی خودشون میگردند در صورتی که کارت گرافیک به درستی نصب شده اما فیلم‌ها با کیفیت پایینی نمایش داده میشوند.

البته توجه داشته باشین که کارت گرافیکی شما باید توانایی نمایش سخت افزاری را داشته باشه تا CPU درگیر نمایش ویدئو نشه و بهترین کیفیت ممکن نمایش داده بشه. من توی این پست به خاطر استفاده از کارت گرافیکی Intel فقط در مورد این کارت گرافیکی صحبت میکنم و توی مجال دیگری که بتونم NVIDIA را هم بررسی کنم در مورد اون هم خواهم نوشت.

من توی لینوکس برای نمایش فیلم‌ها از VLC استفاده میکنم. VLC برای پخش سخت افزاری از VDPAU استفاده میکنه که متأسفانه برای Intel به صورت Generic وجود نداره اما یک پکیج به نام libvdpau-va-gl موجود هست که به کمک OpenGL امکان استفاده کارت گرافیکی هایی که VDPAU را پشتیبانی نمیکنند فراهم میکنه. برای نصب این پکیج میتونید دستور زیر را بزنید :

sudo apt-get install  libvdpau-va-gl1 vdpauinfo

اما متأسفانه من نتونستم از طریق این پکیج و با استفاده از کارت گرافیکی Intel خودم و گذاشتن خروجی ویدئوی VLC روی VDPAU جواب بگیرم و VLC میگه که نمیتونه Library مورد نظرش را پیدا کنه و خطاهایی میده که روی نت هم نتونستم پاسخی صریح براش پیدا کنم و نیاز به بررسی خیلی بیشتر داشت.

با این حال در حین جستجو ها متوجه شدم که میشه همین پکیج libvdpau-va-gl را به شکل دیگه‌ای روی VLC پیاده‌سازی کرد. به این صورت که کافیه یک VIDEO ACCELERATION API نصب کنیم و از طریق OpenGL روی VLC نمایش سخت افزاری داشته باشیم.

پس ابتدا با دستور زیر پکیج های مورد نظر را نصب میکنیم :

sudo apt-get install i965-va-driver vainfo

حالا کافیه خروجی ویدئو را توی VLC بگذاریم روی OpenGL GLX Video Output و توی Input/Codecs هم Hardware-Accelerated decoding را بگذرایم روی VA-API Video Decoder via X11 و تمام. حالا اگه یک فیلم یا سریال را باز کنید از نتیجه متحیر میشین.(مخصوصا در مورد فیلم‌های HD)

زمانی که من این موارد را بررسی و گزارش میکردم از توزیع Debian و میزکار Cinnamon بهره میبردم و Tearing نداشتم. اما روی اوبونتو و سایر میز کارها به شرطی که مشکل Tearing را حل کرده باشین مورد خاصی نباید باشه.