Recent

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

aradeonas

  • Hero Member
  • *****
  • Posts: 824
Re: NON(!)-EXE FFPlay4Laz
« Reply #90 on: July 22, 2016, 06:41:24 pm »
So I like your version more And I will continue to follow your works :P

metis

  • Full Member
  • ***
  • Posts: 154
Re: NON(!)-EXE FFPlay4Laz
« Reply #91 on: July 29, 2016, 06:56:26 pm »
@aradeonas
Quote
So I like your version more...
Me, too (of course).  :D
Finally 'LibFFPlay' is a general Solution for general Needs, whilst
'FFPlay4Laz' is a special Solution for special Needs - my Needs.  :)

I'm looking forward to compare the Performance of 'LibFFPlay' and 'FFPlay4Laz', regarding
Speed, Response/Latency, and Synchronism, and
I'm curious, which Features 'mercury' will add to the original FFPlay-Functionality.
Life could be so easy, if there weren't those f*** Details.

metis

  • Full Member
  • ***
  • Posts: 154
Re: NON(!)-EXE FFPlay4Laz
« Reply #92 on: May 25, 2018, 01:06:21 pm »
@aradeonas (and all the others)

Here's the next Release of 'FFPlay4Laz' and 'FFInfo4Laz':
(Except of 'SDL.dll', all Files have changed -> Replace all old Files with the new ones.)

What's new...

- Written with Lazarus v1.8.2 + FPC v3.0.4.
- Updated to 'FFmpeg v3.3.5', using FFmpeg-Headers v3.3.5 from 'FFVCL v7.0'.

- Changed: VersionCounting
  From now on, the first Number indicates the required SDL-Version;
  the following 2 or 3 Numbers are the same as the required FFmpeg-Version.
  (This Way, You'll always know, which DLL-Versions are required.)
  => Current Version of 'FFPlay4Laz' and 'FFInfo4Laz' is v1.3.3.5

- Revised: Start PAUSED
  This Option determines, whether MRLs are opened paused or playing.
  (Open paused didn't work really well in the last Version of 'FFPlay4Laz' - now, it should.)

- Added: Audio-only Files supported (former Versions of 'FFPlay4Laz' only played Videos)
  -> Should play all AudioFormats, supported by FFmpeg.

- Added: AudioOutputDevice selectable (Portaudio only; not supported by SDL1)
  When the App starts, all available Pa-AudioOutputDevices are listed in the ConsoleWindow.
  The preferred Pa-AudioOutputDevice can then be set in the INI.File.
  Note: The best Sound is obtained with Portaudio + ASIO (I use 'ASIO4ALL': www.asio4all.com).

- Added: Video-SyncMode selectable
  This Option determines, how Video-MRLs are synchronized, and is set in the INI.File:
  0=NO AV-Sync          : The Audio- and VideoStream are not synced to each other
  1=SyncVideoToAudio: The AudioStream is constant; Video is synced to it
  2=SyncAudioToVideo: The VideoStream is constant; Audio is synced to it
  3=AutoSync              : The AV-SyncMode is selected automatically (recommended)
  When the App runs, the Video-SyncMode can be changed with <0>, <1>, <2>, <3>.

- Added: Toggle VideoScreen
  <Tab> toggles between two Screens, whose Settings are stored in the INI.File.
  E.g. Screen #1 = 5,5,1270,730,0       = "in the left upper Corner, big, w/o Frame nor Titlebar"
         Screen #2 = 625,245,600,450,1 = "in the right lower Corner, small, and resizable".

- Added: Toggle Resizable <-> NoFrame/NoTitlebar
  LeftDoubleClicking on the SDL-Screen toggles between 'Resizable' and 'NoFrame/NoTitlebar'.

- Added: Fullscreen
  When the SDL-Screen is maximized, LeftDoubleClicking on it switches to Fullscreen, and back.

- Added: Freeze Video with <f>.

- Added: Mute Audio with <m>.

- Added: Display Playertimes with <t> (= MRL-Position - MRL-Length - Remaining Time).
  (For the Moment, the Playertimes are only shown in the ConsoleWindow; OSD is projected.)

- Added: Seek PAUSED (experimental with Videos)
  Press <Space> to pause the MRL, then press one of the SeekKeys (= <Up>/<Dn, <Left>/<Right>, <PageUp>/<PageDn>).
  All SeekKeys are repetitive, means as long as the Key is pressed, the Seek will be repeated automatically.
  Notes: - With some Video-Formats, Seeking paused may be a bit slow, especially when Seeking backwards.
              - Sometimes the Seek's TargetPicture is not detected correctly. In this Case, the VideoImage jumps to the actual SeekTarget, when the Video is resumed.
               -> Some better Code is under Construction.

- Added: AutoPause
  <p> switches AutoPause on/off. This Feature is especially useful, if several Players are opened simultaneously:
  When AutoPause is activated, the Player, that has the Focus is resumed, the other ones are paused automatically.
  Note: You can open as much Instances of 'FFPlay4Laz' as Your CPU bears, where
            each Instance may have any Position & Size on the PC-Screen(s), see 'MultiVideoExample.jpg' in the Attachment.

- Added: Step Frame(s)
  <Less> ("<") steps one or several Frames forward; 'Step Frame(s)' is repetitive.
  Note: Mostly it's more useful to step several Frames, instead of Stepping only one Frame.
           Therefore, the Number of Frames to be stepped at once can be set in the INI.File.

How to install...

Download 'FFPlay4Laz-1.3.3.5-cli.7z' from the Attachment, extract it, and
put all required DLLs (FFmpeg, SDL, Portaudio) into the same Directory.
'FFPlay4Laz' is portable, so You may put the FFPlay4Laz-Directory wherever You want on Your PC.

Requirements... (see also 'README_ConsoleInfo.txt' -> GoTo "Requirements...")

- The FFmpeg-DLLs - There are several Ways to get them, e.g.:

  - From 'FFVCL': http://www.delphiffmpeg.com/downloads
    -> Download the FFmpeg-DLLs for Win32
        (Those for the FFVCL Player are sufficient = "LGPL, Player/Decoder only, smaller filesize").
        The FFmpeg-DLLs are in the Folder 'LibAV' - 'SDL2.dll' and 'SoundTouch.dll' are not used by 'FFPlay4Laz'.

  - From 'Zeranoe': https://ffmpeg.zeranoe.com/builds/

  - From 'FFmpeg': https://www.ffmpeg.org/download.html
    These are the FFmpeg-SourceFiles; You have to build the DLLs by Yourself.
    I use 'MinGW v4.9.2' + 'Nasm v2.12.01' (+ 'SDL v1.2.15' for FFmpeg's 'FFPlay').

  Note:
  This Version of 'FFPlay4Laz'/'FFInfo4Laz' is written with the DLLs from FFmpeg v3.3.5.
  I tested it with the DLLs from the last v3.4 ReleaseBranch (= v3.4.2, "Cantor") -> It works with them, too.

- The SDL-DLL: https://www.libsdl.org/download-1.2.php
  -> Download 'SDL-1.2.15-win32.zip'.

- The Portaudio-DLL: https://github.com/spatialaudio/portaudio-binaries
  -> Download 'libportaudio32bit.dll'.

How to use it...
see 'README_ConsoleInfo.txt', 'README_ConsoleKeys.txt' and 'README_ConsoleOptions.txt'.

Known Bugs, ToDos, Not so Nices...
- Still using SDL1 -> Update to SDL2 is projected.
- Seek paused is experimental; it may not work well with some Video-Formats (see above).
- No NetworkSupport implemented.
  If You need a Lazarus-FFmpegPlayer with NetworkSupport, somby did one, see:
  http://forum.lazarus.freepascal.org/index.php/topic,40446.0.html

Try them out, tell me Your Opinion and if there are Bugs.

 :)
« Last Edit: February 25, 2019, 12:59:43 pm by metis »
Life could be so easy, if there weren't those f*** Details.

metis

  • Full Member
  • ***
  • Posts: 154
Re: NON(!)-EXE FFPlay4Laz
« Reply #93 on: February 21, 2019, 05:22:09 pm »
Here's the next Release of 'FFPlay4Laz':
(Except of 'SDL.dll' and 'libportaudio32bit.dll', all Files have changed since the last Release.)

What's new...

- Written with Lazarus v1.8.4 + FPC v3.0.4
- Updated to 'FFmpeg v4.0.2', using FFmpeg-Headers v4.0.2 from 'FFVCL v7.1' => current Version is v1.4.0.2.

- Added: Seek with the Mousewheel (= the Preset, when a MRL is opened)
  Press <s>, then seek with the Mousewheel 1.0 Sec. Forwards/Backwards; RightClick seeks to the CUE-Position.

- Added: Adapt any MRL to any Screen
  Press one of the following Keys, then set the Value with the Mousewheel; RightClick resets to Factor 1.0:
  <a> Set AspectRatio-Factor (= continuous, so not only fix 4:3, 16:9, 16:10, etc.)
  <x> Move the VideoImage in X-Direction
  <y> Move the VideoImage in Y-Direction
  <z> Zoom the VideoImage (= continuous, so not only fix 1:2, 1:4, 2:1, etc.)
  <v> Set Volume (0-5x Amplification)
  > With these Functions wrong Encodings (e.g. incorrect AspectRatio, low Volume) can be corrected,
      while Watching a Movie, so time-consuming Transcoding of the entire Movie is not needed.

- Added: Colored Border around the VideoImage
  The BorderColor is set in the INI-File -> [VideoOptions] -> 'BorderColor' as RGB, e.g.:
  BorderColor=0,0,0 draws a black Border, 0,255,0 a green One, 219,219,219 a "ScreenGrey" -> any BorderColor can be set.
  > This Feature helps to see the Distance between the VideoScreen and the actual VideoImage.

- Added: AutoSave VideoScreen-Parameters
  In 'FFPlay4Laz' <Tab> toggles between two Settings for the SDL-Window, e.g. to switch a Movie between
  a Laptop and a TV-Set. From now on these Settings are saved automatically in the INI-File, so You don't
  have to set them manually any more.

Attached 'FFPlay4Laz-1.4.0.2-Features.7z' contains a Summary of all Options and PlayerFunctions, that
are currently implemented in 'FFPlay4Laz'.

Attached 'FFPlay4Laz-1.4.0.2-Files.jpg' shows the Files You need to run the FFPlay4Laz v1.4.0.2 Console.
The Download-Sites for FFmpeg, SDL and Portaudio are in my previous Post.

Hope, You like it - I use it every Day  :)
« Last Edit: February 25, 2019, 02:11:55 pm by metis »
Life could be so easy, if there weren't those f*** Details.