2010-02-08 9 views
0

Je ne suis pas très cool quand il s'agit de C# mais c'est probablement mon meilleur coup pour y parvenir. Donc j'apprends comme je vais, et même si cela peut sembler ambitieux c'est pour une bonne raison. Je veux écrire un lecteur vidéo de style Picture-in-Picture qui crée tout simplement un bloc de largeur X par la hauteur Y, et un fichier vidéo peut être chargé et lancé et joué. Comme une vidéo en plein écran mais sans interface (et pas en plein écran), mais comme une fenêtre sur tout le reste.programmer un lecteur vidéo avec C# (mono) pour linux

Je ne sais pas trop par où commencer. C'est pour un système Linux, donc je ne veux pas (et ne peux probablement pas) utiliser directx. dois-je puiser dans opengl pour diffuser la vidéo à l'écran ... et qu'en est-il des codecs? le système (ubuntu) gère-t-il le décodage, etc. ou doit-il être intégré dans l'application?

J'apprécierais tous les conseils et astuces, ainsi que tous les articles ou tout ce qui pourrait aider.

Répondre

7

Si seulement il y avait une sorte d'open source Linux media player qui existait déjà en C# que vous pourriez read how they did it ... :)

+0

Hahah. Merci Paul :) Je connaissais Banshee, mais je ne savais pas que c'était fait avec Mono etc. Je verrai ce que j'en tire. Cependant, cela ne me dérangerait pas si quelqu'un avait d'autres commentaires! :) – David

+0

Eh bien, il est également difficile de croire que Microsoft utilise .NET pour créer un logiciel Zune sur Windows. .NET brille dans le domaine du lecteur multimédia. –

1

L'application vidéo doit avoir un contrôle sur:

  • Vidéo démultiplexage et décodage

  • Vidéo présentation

Pour la première, je l'utilise ffmpeg (mon préféré), mais d'autres possibilités sont également SDL et xine. Pour la seconde, je suggère OpenGL (mon préféré ...: P), mais probablement SDL est plus approprié, puisque vous pouvez déjà utiliser pour le décodage vidéo.

Il existe sûrement des tonnes de bibliothèques pour développer une application vidéo. Tu dois choisir. Notez que les bibliothèques mentionnées peuvent être écrites en c/C++, et en effet pour les utiliser, vous avez des liaisons C# pour appeler les routines de bibliothèque. Vous devriez préférer les bibliothèques exposant déjà des liaisons C#. Le Framework TAO (sur sf.net) a déjà des bindings ffmpeg, mais probablement il ne sera plus mis à jour, et SDL les a probablement.

+0

Utilisez GStreamer à moins que vous ayez besoin d'un contrôle de bas niveau, il a déjà des liaisons C# et sera beaucoup plus facile à intégrer (vous n'avez pas à vous soucier du rendu, alors que ffmpeg vous fournira simplement des flux vidéo/audio non compressés) –

Questions connexes