PDA

View Full Version : سوال: چگونگی پخش mkv توی برنامه...



lordvandad
پنج شنبه 25 خرداد 1391, 12:45 عصر
سلام... :لبخندساده:
من یک برنامه کوچیکی دارم می نویسم که توی اون از dll خود مدیاپلیر پیشفرض(WMP) استفاده می شه و با وجود نصب بودن کدک های مختلف, باز هم غیر از چند تا فرمت محدود مثه "mpg,avi,mp4,wmv,mov" بقیه, و از همه مهمتر mkv رو ساپورت نمی کنه!!!!
تا حدودی بلدم که از بخش WPF Application یک مدیا پلیر شخصی بسازم, ولی مشکل اینجاست که از اینجا بیشتر میشه یک مدیاپلیر با یک شکل ظاهری دیگه ساخت و شیئ پلیرش باز مثه همون مدیاپلیر معمولیه....
کل اینترنت هم که زیر و رو کردم چیز به درد بخوری پیدا نکردم!!!
اگه راهی هست میشه کمک کنین؟ تا حدودی ضروریه!!! :قلب:

lordvandad
پنج شنبه 25 خرداد 1391, 19:48 عصر
یعنی کسی جوابی نداشت لطفا؟!!!!!!!!!!!!!!!
"نمی دونم" هم جواب به حساب میاد ها!!! :لبخند:

iman_me
پنج شنبه 25 خرداد 1391, 19:53 عصر
دوست عزیز اگه بخواید از کامپوننت خود VS استفاده کنید که باید شکلش هم تحمل کنی
وگرنه باید خودت یه پلیر بنویسی:لبخند:

lordvandad
جمعه 26 خرداد 1391, 00:02 صبح
ممنون که جواب دادین... :لبخندساده:
آره منم متوجه هستم که باید خودم یک پلیر درست کنم, ولی هیچ منبع یا مرجعی که بتونه کمکی باشه توی این زمینه پیدا نکردم...
همونطوری هم که گفتم چند وقت پیش یه آموزش تصویری از توضیحات کلی اینکه از قسمت WPF Application یک پلیر بسازیم پیدا کردم, ولی توی اون, این توضیح داده نشده بود که چه طوری با فرمت های مختلف سازگار کنیم این پلیر رو, و چیزی که استفاده می شه اونجا باز همین روند مدیا پلیر پیشفرض رو داره :ناراحت:
در هر صورت ممنون...

Saeed_m_Farid
جمعه 26 خرداد 1391, 11:34 صبح
سلام
برای من تو یه پروژه لازم شد و برخلاف شما تا اونجایی که یادم میاد زیاد هم به دردسر نیافتادم و 3-4 تا پروژه متن باز و خوب براش پیدا کردم؛ ولی در نهایت چون من از VLC (http://www.videolan.org/vlc/) خیلی خوشم میومد و با اکثر فرمت ها و پلت فرم ها سازگار هست، از اون استفاده کردم...
البته اون موقع خیلی از این امکانات رو نداشت :



VLC playback Features:

* DVD decryption is done through the libdvdcss library.
* VLC on GNU/Linux, Solaris, and Microsoft Windows has playback control support via libcdio and libvcdinfo. On other platforms, SVCD support varies depending on the availability of these libraries. (Volunteers for adding support are always welcome.). Handling still frames (often used in menus) and switching between different video formats is problematic.
* On Mac OS X 10.4 or later, VLC is able to grab video and audio from EyeTV applications and therefore all EyeTV-compatible capture devices. The user needs to install a plugin to EyeTV.app in order to use this feature. Guidance is provided in the User Interface. Requires VLC 0.9.0 or later.
* VLC for GNU/Linux supports V4L2 compatible encoding cards as well as two kinds of MPEG-2 encoding cards: Hauppauge WinTV-PVR-250/350 and Visiontech Kfir.
* VLC can capture video from internal iSights on Mac OS X 10.5 or later (video only) since version 0.9.0. VLC 1.2 adds capturing from all devices supported by QTKit. It also enables audio capturing support on Mac OS X 10.6 and later.

برای Windows Forms، WPF و Silverlight 5 هم dll داره و فرمتهایی که در عکس ضمیمه گذاشتم رو هم پشتیبانی میکنه (اینجا (http://www.videolan.org/vlc/features.php?cat=input)) و می تونید تو سایت Codeplex (http://www.codeplex.com/) از لینک زیر برش دارین :
VideoLan DotNet for WinForm, WPF, SL5 - 2011.11.29 (http://vlcdotnet.codeplex.com/releases/view/77778)

=====================
یه مجموعه دیگه هم هست بنام MediaPortal (http://www.team-mediaportal.com/) که خیلی بزرگتره ولی شاید خواستید به اونهم نگاهی بندازین:


ویکی (http://wiki.team-mediaportal.com/)
دانلود (http://www.team-mediaportal.com/mediaportal-download)

====================
برای ویدئوهای Embedded (مثل یوتوب و ...) هم بازم یه کامپوننت عالی که از HTML5 و سیلورلایت و ... استفاده میکنه، تو Codeplex (http://www.codeplex.com/) هست:
ASP.NET Embedded Video Player (YouTube™ API, C#‎‎)
(http://videoplayer.codeplex.com/)

lordvandad
جمعه 26 خرداد 1391, 12:26 عصر
ممنون Saeed_m_Farid عزیز از کمکت... :لبخندساده:
از اونجایی که خیلی وقت نیست برنامه نویسی رو شروع کردم, هنوز یه ذره می لنگم...
الان شما خیلی لطف کردی و این dll ها رو گذاشتی, اگه ممکنه یه کمک کوچیک هم بکنی که چطوری ازشون(به خصوص vlc) استفاده کنم ممنون می شم...
مثلا الان چه طوری باهاش باید فیلم رو پخش کنم؟ مثلا مدیا پلیر یه url داشت که آدرس فیلم رو باهاش مشخص می کردیم حالا چه با انتخاب فیلم از منو یا آدرس دهی دستی, ولی برای این یکی, من همچین امکانی پیدا نکردم.... :ناراحت:

Saeed_m_Farid
جمعه 26 خرداد 1391, 13:38 عصر
شما گفتی تو WPF ازش استفاده میکنی، درسته؟ اگه Documentation اش رو میخوندی نوشته بود؛ قبل load کردن VlcContext حتماً باید initialize اش کنی:

//Set libvlc.dll and libvlccore.dll directory path
VlcContext.LibVlcDllsPath = CommonStrings.LIBVLC_DLLS_PATH_DEFAULT_VALUE_AMD64 ;
//Set the vlc plugins directory path
VlcContext.LibVlcPluginsPath = CommonStrings.PLUGINS_PATH_DEFAULT_VALUE_AMD64;
//Set the startup options
VlcContext.StartupOptions.IgnoreConfig = true;
VlcContext.StartupOptions.LogOptions.LogInFile = true;
VlcContext.StartupOptions.LogOptions.ShowLoggerCon sole = true;
VlcContext.StartupOptions.LogOptions.Verbosity = VlcLogVerbosities.Debug;
//Initialize the VlcContext
VlcContext.Initialize();


بعدش میتونی تو Xaml intégration بصورت زیر ازش استفاده کنی :

<Wpf:VlcControl x:Name="myVlcControl" />

<Grid Grid.Row="0">
<Grid.Background>
<VisualBrush Stretch="Uniform">
<VisualBrush.Visual>
<Image Source="{Binding ElementName=myVlcControl, Path=VideoSource}" />
</VisualBrush.Visual>
</VisualBrush >
</Grid.Background>
</Grid>


که VideoSource بقول شما آدرس فیلم هست، ضمناً یادت نره که حتماً موقع تموم شدن کارت (مثلاً بسته شدن فرم) کنترل رو هم Close کنی:
VlcContext.CloseAll();

===============
اینا رو هم ببینید :
libvlc media player in C# : part 1 (http://www.helyar.net/2009/libvlc-media-player-in-c/)
libvlc media player in C# : part 2 (http://www.helyar.net/2009/libvlc-media-player-in-c-part-2/)

Saeed_m_Farid
جمعه 26 خرداد 1391, 13:57 عصر
تو وین فرم که خیلی راحته من نمیدونم شما کجاش مشکل داری؟ یه media درست میکنی و اون رو با کنترلی که درست کردی Play میکنی، به همین راحتی! Sample ای که من استفاده کرده بودم، این (http://vlcdotnet.codeplex.com/wikipage?title=Presentation%20of%20Vlc.DotNet%20al pha%202) بود، دیگه از این راحت تر نمیشه، حتی تمام publics members رو هم لیست کرده؛ ولی نمیدونم واسه جدیده کار میکنه یا نه؟

Vlc.DotNet.Forms namespace & dll :

http://download.codeplex.com/download?ProjectName=vlcdotnet&DownloadId=177428

Vlc.DotNet.Core namespace & dll

http://download.codeplex.com/download?ProjectName=vlcdotnet&DownloadId=177426

hamidhws
چهارشنبه 21 تیر 1391, 16:45 عصر
سلام
چطوری میتونم مثل یه کامپوننت معمولی یا مثلا مثل یه تکست باکس این vlc player رو روی فرم بندازم و باهاش کارکنم؟(توی wpf)