Forum > Audio and Video

MPlayer Component, suitable for Linux and Windows

(1/3) > >>

six1:
The MPlayer Component from Mattias Gaertner now also works for Lazarus/Windows Combination.

I needed a Cross Component for playing videos on a x86 X-System and also on x86 Microsoft Windows, so i decieded to push up the great working Component from Mattias.

New is the Property "MPlayerPath". For X-System leave it blank ( Player1.MPlayerPath :=''; ) but on a Microsoft Windows System, you have to fill it with a valid Path to mplayer.exe installation.
Also new is the Property "StartParam". This is for starting mplayer with special arguments like "-zoom".

Sample for Setup the Player:
  {$IFDEF Linux}
   MPlayerControl1.MPlayerPath:='';
   MPlayerControl1.StartParam:='-vo x11 -zoom -fs';
  {$else $IFDEF Windows}
   // Download MPlayer generic for Windows and save under Programm Folder Directory
   // http://sourceforge.net/projects/mplayer-win32/
   //Download MPlayer WIN32-Generic
   MPlayerControl1.MPlayerPath:=extractfilepath(application.exename)+'MPlayer/mplayer.exe' ;
   MPlayerControl1.StartParam:='-zoom -fs';
  {$endif}

Download MPlayer generic for Windows: http://sourceforge.net/projects/mplayer-win32/





Edit 2024/02:
Do to Problems with LAZ Versions >=2.2 on Linux , MplayerComponent was patched on Lazarus CCR
https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/mplayer/
Thanks to wp_xyz!



Hope, it will be usefull.
Best regards, Michael

mattias:
I did  a few improvements: I fixed the default file name under Linux, less hints, better error handling and better quoting the file name.

Mike.Cornflake:
The mplayer package now supports reading of video file properties and has all the usual events and methods you'd expect from a video player control.

A page on the wiki has been created: http://wiki.lazarus.freepascal.org/TMPlayerControl  (I've been meaning to add a usage notes section, but haven't got around to it and I'm out of time for now).

Recent changes have been tested on Windows 7/8 quite extensively, and, well, lightly under Linux.

Frame Capture under Windows seems to work best with the Direct3D renderer (TMPlayer1.StartParam := '-vo direct3d'), but under Linux (where you have to use '-vo x11') seems hit and miss...

The package also has a new demo that implements a fairly comprehensive video player (it's even got wheel mouse scroll for controlled stepping through the video (back or forth in 1/3 second increments), I work with underwater inspection video, wheel mouse scroll is very useful in this area).  See examples\FullFeatured\mplayerTestHarness.lpr

Kamau:

--- Quote from: six1 on March 24, 2014, 08:37:32 pm ---Hope, it will be usefull.
Best regards, Michael

--- End quote ---

Very good! Thank you for this information.

/Kamau

jipété:
Hi,

--- Quote from: six1 on March 24, 2014, 08:37:32 pm ---The MPlayer Component from Mattias Gaertner now also works for Lazarus/Windows Combination.

--- End quote ---
Not now, Mattias...

I've searched the internet for MPlayer coz' I have many old Delphi working sources using TMPlayer and PlaySound, and I wanted to convert these programs to Linux (Debian 11.5 64 bits with the last Lazarus) and I've found that topic.

But...
I downloaded the files from the 4th link of the first post (https://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/mplayer/)
I installed MPlayerCtrl, with a problem in MPlayerCtrl.pas... : "Wrong number of parameters" here (line 835) :

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---    WidgetInfo := GetWidgetInfo(NewWidget,true); // destroyed in MPLayerWidgetDestroyCBSo I commented out that line and added another one :

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---    WidgetInfo := GetWidgetInfo(NewWidget); // jpt
Restarted install = OK but now, the new line causes SIGSEGV with the example found in http://sourceforge.net/p/lazarus-ccr/svn/HEAD/tree/components/mplayer/
img_sigsegv

mouse on LCLObject displays the following :
img_mouseon

So I tried the following : reboot computer, start Lazarus, create a new application, open Multimedia tab and double-click on the TMPlayer icon, a component is drawn on form, ok, so F9 and ACCESS VIOLATION at line 837 of MPlayerCtrl.pas...

And if I try to move up the Multimedia tab from ide menu / Tools / Options / Components' Palette, when I close the Options dialog, ide crashes.
img_crash_lazarus

In 3rd post I read

--- Quote from: Mike.Cornflake on July 16, 2014, 09:03:11 pm ---See examples\FullFeatured\mplayerTestHarness.lpr

--- End quote ---
Nothing like that in my computer (Debian 11.5, FPC 3.2.2, Laz 2.2.4)...

Dunno what to do now...

Thanks for help

PS : i run under X/gtk2, as required by the ReadMe.

PPS out of topic : how to insert images in text ?

Navigation

[0] Message Index

[#] Next page

Go to full version