Recent

Author Topic: NON(!)-EXE FFPlay4Laz  (Read 94606 times)

aradeonas

  • Hero Member
  • *****
  • Posts: 824
Re: NON(!)-EXE FFPlay4Laz
« Reply #75 on: February 18, 2016, 07:41:37 am »
Quote
I see, You really insist on the KeyRepeat-Feature. Though it is not projected at the Moment, I'll implement it for You - or maybe, Frank does...
Quote
'FFPlay4Laz' works quite fine
Yes but we need this features to even work with it in real situtaions. Playing video is the master part but not all it need.

As always Im waiting for next version.
Good job dear Metis.

metis

  • Sr. Member
  • ****
  • Posts: 300
Re: NON(!)-EXE FFPlay4Laz
« Reply #76 on: March 11, 2016, 02:18:31 pm »
@aradeonas

"fast forward" - Here it is, see my DropBox -> 'FFPlay4Laz_02_11.03.16 - 11.57:  :)

> Added:
  - 'FastSeek': Press <b> for 'fast BACKward'; press <f> for 'fast FORward'
                        (if the Stream is paused, it goes much faster, but w/o Sound).
  - 'RepeatedSeek': Keep one of the SeekKeys pressed - after 500ms the Seek starts going repetitiv.


@Frank

Quote
1. It, however, required the use of your version 1 dll's
2. I took a look at your source...I always enjoy studying/learning from others
3. the ability to pass THandle of window to thread, & video being displayed
4. I could start the above modifications, albeit after my work with Uos

ad 1. You find them in my DropBox -> 'FFPlay4Laz\FFPlay4Laz_01 - RELEASED_29.12.15 - 15.42 (DEPRECIATED)'.

ad 2. Me, as well - In this Case, most You studied/learned is from Dranger; I only translated it to FPC.

ad 3. No Need for it; in 'FFPlay4Laz - GUI-Version', the VideoDATA itself is passed to SDL and the LazOpenGLControl.

ad 4. Waiting...
Life could be so easy, if there weren't those f*** Details.
My FFmpeg4Lazarus = FFPlay4Laz + FFGrab4Laz + FFInfo4Laz

aradeonas

  • Hero Member
  • *****
  • Posts: 824
Re: NON(!)-EXE FFPlay4Laz
« Reply #77 on: March 12, 2016, 11:02:32 am »
I like it @metis. Very good.
Waiting for the next one ;)

metis

  • Sr. Member
  • ****
  • Posts: 300
Re: NON(!)-EXE FFPlay4Laz
« Reply #78 on: April 26, 2016, 02:21:18 pm »
@aradeonas

Quote
Waiting for the next one

Here it is, see my DropBox -> 'FFPlay4Laz_02_26.04.16 - 13.01:

Changes:
> Lazarus-IDE updated to v1.6.0 + FPC v3.0.0
> 'README_Console.txt' updated:

> Added: 2 Seek-Keys:
  - Press <Home> to go to the Stream's Begin (= BOF)
  - Press <End> to go to the Stream's End (= EOF)
    'Note: - EOF-Detection is quite inaccurate yet; for the Moment it's only seeking "quite near to EOF".
               - EOF means "EndOfFILE", so the Stream keeps playing, until the PacketQueues are empty.

> Added: 3 Info-Keys:
  - Press <c> to get Infos about all Chapters (Starttime, Endtime, Metadata)
  - Press <i> to get Infos about all Streams (Codec, Duration, Bitrate, fps tbr tbn tbc, Metadata, etc.)
    'Note: - The Bitrate may return Zero with Streams having a VARIABLE Bitrate.
               - The 'tbr' is not always detected correctly (don't know, why);
                 'tbr, corr.' shows the Result of a Workaround of mine, that tries to get the 'tbr' better.
  - Press <m> to get the AV-Stream's Metadata (= Tags).

> Added: 3 Tools to read out StreamInfos only
  (For continuity reasons I call them FFInfo4Laz):
  - 'FFInfo4Laz_StreamChapter.exe'  = same as "press <c>"
  - 'FFInfo4Laz_StreamInfo.exe'         = same as "press <i>"
  - 'FFInfo4Laz_StreamMetadata.exe' = same as "press <m>"

Parts of the Code to read out StreamInfos via FFmpeg-DLLs, I posted here:
http://forum.lazarus.freepascal.org/index.php/topic,22038.15.html
-> see the Attachment of my Post from April 22, 2016.

Have Fun with it  :)
« Last Edit: April 29, 2016, 01:09:54 pm by metis »
Life could be so easy, if there weren't those f*** Details.
My FFmpeg4Lazarus = FFPlay4Laz + FFGrab4Laz + FFInfo4Laz

aradeonas

  • Hero Member
  • *****
  • Posts: 824
Re: NON(!)-EXE FFPlay4Laz
« Reply #79 on: April 30, 2016, 07:47:19 am »
Hi metis, how are you?
I see you made changes after a while. I checked them and they are very good.
But two request :
1- Can we have a fast forward while we keep key down? like popular players? this version just keep jumping on 30s intervel but I mean for example julmbing on 1s interval but much more occurrences.
2- Can we have a progress?

metis

  • Sr. Member
  • ****
  • Posts: 300
Re: NON(!)-EXE FFPlay4Laz
« Reply #80 on: May 05, 2016, 06:45:05 pm »
@aradeonas

Quote
made changes after a while
Actually, I implemented the entire Code to read out Stream-Metadata, -Data, and -Chapters via FFmpeg-DLLs.
This indeed did last a While (Progging is my Hobby, not my Profession ;) ).

Quote
fast forward while we keep key down...just keep jumping on 30s intervel
'FastSeek' and 'RepeatedSeek' are already executed as long as the corresponding Key is pressed.
In the last Version, the 'FastSeek' is nothing else than a "modified 'RepeatedSeek' with SeekTarget = +/- 1 Sec." .
Doing it this Way, does not really work satisfying and is quite slow, simply because all the AV-Stuff has to
pass the Packet-, and PictureQueue and get synchronized, before You hear & see it.

Quote
much more occurrences...Can we have a progress
If I get You right, You want to know, wether 'FastSeek' can be speeded up ?
- Immediate Solution: Apply 'FastSeek' on a PAUSED Stream.
- Projected Solution: Pass the AV-Packets DIRECTLY to the Audio-/VideoOutput.

But, just tell me, why Seeking fast is so important for You.
I regard it as a ToDo with low Priority; there are lots(!) of other pending Things to be done first.
Life could be so easy, if there weren't those f*** Details.
My FFmpeg4Lazarus = FFPlay4Laz + FFGrab4Laz + FFInfo4Laz

aradeonas

  • Hero Member
  • *****
  • Posts: 824
Re: NON(!)-EXE FFPlay4Laz
« Reply #81 on: May 05, 2016, 11:58:30 pm »
Code: Pascal  [Select][+][-]
  1. - Immediate Solution: Apply 'FastSeek' on a PAUSED Stream.
It seems good but not a real solution.
But, just tell me, why Seeking fast is so important for You.
Simply it feels good :D
I regard it as a ToDo with low Priority; there are lots(!) of other pending Things to be done first.
OK, so I let you working on them and I will not nag about this for a while ;)
Progging is my Hobby, not my Profession ;)
And you are pretty good at it  ;)

metis

  • Sr. Member
  • ****
  • Posts: 300
Re: NON(!)-EXE FFPlay4Laz
« Reply #82 on: May 09, 2016, 01:52:00 pm »
 :D
Life could be so easy, if there weren't those f*** Details.
My FFmpeg4Lazarus = FFPlay4Laz + FFGrab4Laz + FFInfo4Laz

metis

  • Sr. Member
  • ****
  • Posts: 300
Re: NON(!)-EXE FFPlay4Laz
« Reply #83 on: June 13, 2016, 04:36:35 pm »
@aradeonas

Here's the next Release, see my DropBox -> 'FFPlay4Laz_02_13.06.16 - 15.12.

Changes...

> Updated: 'README_Console.txt'
> Added  : 'README_Console_KeysAndOptions.txt'

> Added: Cueing:
  Press <Enter>     to set a CUE-Position.
  Press <Backspace> to get back to the CUE-Position.
 ('Note: If no CUE-Position is set, the MRL-StartPosition is used.)

> Added: Looping:
  Press <l>, to set Loop-Params: see 'README_Console_KeysAndOptions.txt' in the Attachment.

> Added: INI-File 'App.ini' to set diverse AppOptions:
  - [VideoOptions]:
    'SdlScreen1': Set SDL-ScreenParams 'X/Y-Position, Width&Height, HasFrame'.
    -> Now, You may set any Position&Size for the SDL-Screen - Finally an old Wish of You came true.
    If You open the SDL-Screen 'framed', You'll see the SDL-Screen's Handle in the TitleBar.
    This Handle is the only Thing You need, to pass the SDL-VideoImage to any other Surface.
  - [AudioOptions]:
    'AudioOutput': Set SDL-Audio or Portaudio.
   ('Note: 'FFPlay4Laz_Console_02_Pa.exe' is not needed any more, and was deleted.)
  - [StartOptions]: Start-MRL, MRL-StartPosition, Start Playing/PAUSED, Open LAST MRL at LAST Position.
  - [EOF-Options] : StopOnEOF, RepeatALL, RepeatFromCUEPosition, ExitOnEOF.
  - [ExitOptions] : see 'README_Console_KeysAndOptions.txt' in the Attachment.

Note: AV-Sync still gets lost when UnPausing - This is the next Thing I gonna fix, promised.
             (I saw, how it's done by FFmpeg's 'FFPlay', but I'd like to do it some other Way.)

BTW: Did You ever try to open several Instances of 'FFPlay4Laz' ?
You may open as much Instances as Your Processor can bear; they keep on playing simultaneously.
With SDL-Audio, You'll hear only the one, whose SDL-Screen got the Focus, whilst
with Pa-Audio, You'll hear an AudioMix of all of them.
Life could be so easy, if there weren't those f*** Details.
My FFmpeg4Lazarus = FFPlay4Laz + FFGrab4Laz + FFInfo4Laz

metis

  • Sr. Member
  • ****
  • Posts: 300
Re: NON(!)-EXE FFPlay4Laz
« Reply #84 on: June 23, 2016, 01:51:34 pm »
@aradeonas

Here's the next Release, see my DropBox -> 'FFPlay4Laz_02_23.06.16 - 12.48.

> Some FineTuning and BugFixes.
  -> 'Seek to CUE-Position' more precise, 'AudioSync' more accurate, (mostly) less AudioClicks, when Seeking.

> Solved: The eternally pending "UnPause-Problem".  :D
  -> Now, 'Pause/Resume' should work; check it out.

-> 'README_Console_KeysAndOptions.txt' updated, see the Attachment.
« Last Edit: June 23, 2016, 02:00:14 pm by metis »
Life could be so easy, if there weren't those f*** Details.
My FFmpeg4Lazarus = FFPlay4Laz + FFGrab4Laz + FFInfo4Laz

metis

  • Sr. Member
  • ****
  • Posts: 300
Re: NON(!)-EXE FFPlay4Laz
« Reply #85 on: July 08, 2016, 05:51:25 pm »
@aradeonas

Here's the next Release:

Updated to the latest FFmpeg-PascalHeaders from 'FFVCL' (= v2.6.4, for FFmpeg v2.8.6):
-> Better Performance.
-> From now on, You can download the DLL-Files directly from the Delphi-FFmpeg-DownloadSite.
    (My DropBox is not needed any more, and won't be updated any longer.)

How to install 'FFPlay4Laz' and 'FFInfo4Laz':

> Step 1: Get the FFPlay4Laz-Files:
   1.1 Download 'FFPlay4Laz.7z' from the Attachment. 
   1.2 Extract the Files. (I use '7-Zip': http://www.7-zip.org/)
   1.3 Put the FFPlay4Laz-Folder, wherever You want on Your PC - 'FFPlay4Laz' runs from any Drive or Folder.

> Step 2: Download the matching FFmpeg-DLLs from the Delphi-FFmpeg-DownloadSite:
   http://www.delphiffmpeg.com/downloads/
   2.1 GoTo: "FFmpeg DLLs for FFVCL Player 6.1/6.1a (LGPL, Player/Decoder only, smaller filesize)".
   2.2 Download 'ffmpeg-dlls-2.8.6-win32-lgpl-player.exe' (= 7.7 MB for Windows 32-bit).
   2.3 Extract the Files.
   2.4 Open Folder 'LibAV', and copy all Files into the FFPlay4Laz-Folder.
   (Note: 'FFPlay4Laz' does not require 'Soundtouch' -> You may delete 'SoundTouch.dll'.)

> Step 3: Read the FFPlay4Laz-ReadMe-Files:
   - 'docs\ReadMe_Console.txt'
   - 'docs\ReadMe_Console_KeysAndOptions.txt'

> Step 4: Enjoy.  :)

Note:
According to the FileSize-, and Attributes of the SDL-DLL, that comes with the FFVCL-DLLs,
'FFVCL' obviously changed this DLL finally to the one, that is actually recommended by FFmpeg, see:
"FFmpeg-MinGW/FFmpeg installation guide"
https://trac.ffmpeg.org/wiki/CompilationGuide/MinGW
-> GoTo: "SDL" -> "You need the 1.2 version".
=> To be sure, that You've got the right SDL-Version for FFmpeg, download it here:
http://www.libsdl.org/download-1.2.php.
« Last Edit: August 04, 2016, 02:58:01 pm by metis »
Life could be so easy, if there weren't those f*** Details.
My FFmpeg4Lazarus = FFPlay4Laz + FFGrab4Laz + FFInfo4Laz

aradeonas

  • Hero Member
  • *****
  • Posts: 824
Re: NON(!)-EXE FFPlay4Laz
« Reply #86 on: July 19, 2016, 10:16:08 pm »
Hi dear metis, sorry for the absent :p
I like the new changes and you seems more active than before, I will check these changes more and waiting for the ones in the future :D

metis

  • Sr. Member
  • ****
  • Posts: 300
Re: NON(!)-EXE FFPlay4Laz
« Reply #87 on: July 22, 2016, 03:03:20 pm »
@aradeonas
Thought, that I've lost my only Follower  :'( - What happened ?

Notes:
- 'Pause/Resume' is done totally different to 'ffplay.c' - in my Opinion it's faster than FFmpeg's 'FFPlay'.
- 'Start Paused' from the last Release doesn't work that good.
   This is already fixed, and will come with the next Release.

The next Release may last, because I'll try to help 'mercury' with his Project, see here:
http://forum.lazarus.freepascal.org/index.php/topic,33105.0.html
« Last Edit: July 22, 2016, 03:24:55 pm by metis »
Life could be so easy, if there weren't those f*** Details.
My FFmpeg4Lazarus = FFPlay4Laz + FFGrab4Laz + FFInfo4Laz

aradeonas

  • Hero Member
  • *****
  • Posts: 824
Re: NON(!)-EXE FFPlay4Laz
« Reply #88 on: July 22, 2016, 04:35:00 pm »
No your not dear metis, I was just have some troubles ;)
You are doing a very good job and I like to see the results when ever you done something new.
About merging with mercury's work, are these project do the same job? will you continue to have a real good video player? please dont let it go :(

metis

  • Sr. Member
  • ****
  • Posts: 300
Re: NON(!)-EXE FFPlay4Laz
« Reply #89 on: July 22, 2016, 06:26:45 pm »
@aradeonas

Quote
are these project do the same job?
Depends on, what You want it for - They both play a MediaFile, but:

> 'LibFFPlay' is a FrontEnd-C-DLL for FFmpeg's 'FFPlay'.
Pro:      - It will do anything, that the FFmpeg-Team implemented in its(!) 'ffplay.c'.
Contra: - It won't do anything, that they did not implement.
=> If Your're happy with 'ffplay.c' "as is", take it, but if not...
E.g., try to add another AudioOutput than SDL-Audio, and get it synced with the VideoImage.

> 'FFPlay4Laz' is a MediaPlayer, that is written from scratch in FPC - why, see here:
http://forum.lazarus.freepascal.org/index.php/topic,33105.msg216137.html#msg216137
-> GoTo: "Tell You, what is mine:"
Quote
An AV-Player (don't need Subtitles), that opens/closes, pauses/resumes, and
seeks really FAST, and all of this with high AV-Synchronism, and outstanding SoundQuality.

Quote
will you continue to have a real good video player?
Of course! I use it each Day, mainly to listen to MusicClips.  ::)
Therefore, I don't need any Format to be rendered, or Subtitles, but e.g. high AudioQuality.
Life could be so easy, if there weren't those f*** Details.
My FFmpeg4Lazarus = FFPlay4Laz + FFGrab4Laz + FFInfo4Laz

 

TinyPortal © 2005-2018