[Lazarus] Play video from memory

"Leonardo M. Ramé" l.rame at griensu.com
Fri Mar 6 16:41:32 CET 2015


To embed mplayer into a window you must know its ID. Window IDs have a 
relation with the WindowHandle, but that value must be somehow 
"translated" to be understood by X11 (or Windows). I don't know how to 
translate it :(.

For example, If I use Format('%x', [Self.WindowHandle]) I get the Hex 
value BB5380, then, using the wininfo tool I can get the ID. Just run 
xwininfo and click on the window you want to embed mplayer into.

In my example I got:

xwininfo: Window id: 0x2800048 "BB5380"

   Absolute upper-left X:  662
   Absolute upper-left Y:  270
   Relative upper-left X:  1
   Relative upper-left Y:  24
   Width: 320
   Height: 240
   Depth: 24
   Visual: 0x20
   Visual Class: TrueColor
   Border width: 0
   Class: InputOutput
   Colormap: 0x22 (installed)
   Bit Gravity State: NorthWestGravity
   Window Gravity State: NorthWestGravity
   Backing Store State: NotUseful
   Save Under State: no
   Map State: IsViewable
   Override Redirect State: no
   Corners:  +662+270  -1744+270  -1744-258  +662-258
   -geometry 320x240+661+246

As you can see, the first line displays the same Hex number I get from 
Lazarus, and 0x2800048, this is the value mplayer expects.

So, to embed a movie into a window, when you know the window Id, you 
just launch mplayer using this options:

mplayer -wid 0x2800048 /home/leonardo/Imágenes/Fotos/2009/11/21/mvi_0260.avi

Please, if any you know how to translate BB5380 to 0x2800048 I'll be 
glad to learn.

El 05/03/15 a las 18:51, Philippe Lévi escibió:
> and you know how to tell MPLAYER to show the video in a specific window? (using WINDOWS, and glutCreateWindow).
>
> thanks
> Philippe
>
> ________________________________________
> De: "Leonardo M. Ramé" <l.rame at griensu.com>
> Enviado: quinta-feira, 5 de março de 2015 17:44
> Para: lazarus at lists.lazarus.freepascal.org
> Assunto: Re: [Lazarus] Play video from memory
>
> Yes, you can!.
>
> 1) Load your Video to a TStream (TMemoryStream for example).
> 2) Use TProcess to execute "mplayer -", the "-" is the parameter.
> 3) Send your stream to the standard input of the process.
>
>
> El 05/03/15 a las 16:45, aradeonas escibió:
>> Thank you Leonardo,
>>
>> I saw it before but it doesn't seem there is a way to pass memory to it
>> or I couldn't find out how.
>> Do you know?
>>
>> Regards,
>> Ara
>>
>> On Thu, Mar 5, 2015, at 11:40 AM, Leonardo M. Ramé wrote:
>>> It looks like MPlayer can do this:
>>> http://www.mplayerhq.hu/DOCS/HTML/en/streaming.html
>>>
>>> El 04/03/15 a las 13:29, aradeonas escibió:
>>>> Hi,
>>>>
>>>> Any one know a library or way to buffer video file into memory and then
>>>> pass it to player?
>>>> Any simple player do the job but it should support a way to open file
>>>> from memory.
>>>>
>>>> Regards,
>>>> Ara
>>>>
>>> --
>>> _______________________________________________
>>> Lazarus mailing list
>>> Lazarus at lists.lazarus.freepascal.org
>>> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
>
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
>
> --
> _______________________________________________
> Lazarus mailing list
> Lazarus at lists.lazarus.freepascal.org
> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus





More information about the Lazarus mailing list