Skip to content

Latest commit

 

History

History

video_slideshow_script_generator

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Video Slideshow Script Generator

Java GUI to create video slideshow scripts

1. Features

  • Generates bash scripts that create video slideshows using FFmpeg
  • Supports
    • Both image and video inputs
    • Audio inside video inputs
    • Background Audio
    • 32 transition types
    • Intro/outro transitions for all transition types
    • Text messages
    • Overlay images
    • Zoom & pan
    • Background image
  • Save/Load video slideshow (.vssg) files

2.Requirements

2.1 Video Slideshow Script Generator

You need to have Java 8 or later installed on your computer to run Video Slideshow Script Generator.

2.2 Scripts

Scripts generated by Video Slideshow Script Generator requires ffmpeg 3.x or later. If you compile FFmpeg from source you need to provide --enable-libfreetype flag on ./configure.

3. Install

You can install the latest demo version from the Releases page. Demo version can be used to preview all features except script generation.

⚠️ Full version of Video Slideshow Script Generator is decommissioned and not distributed anymore.

4. Using

Double-click Video Slideshow Script Generator jar file or run it using java -jar <jar path>.

Adding Components

Use File menu to add new components.

Moving Components

You can change the order of elements in a slideshow by moving them using the control menu. All elements except the Settings frame include a control menu at the top right corner. Also, Audio frame includes a control menu but it does not have navigation buttons.

Deleting Components

Use the delete button in Control menu to delete an element. All elements, except the Settings frame which is mandatory, can be deleted.

Generating Script

Click File -> Generate Script menu item to generate the script of your slideshow. Script will be created under the Default save location folder defined in Preferences and have the name defined in Settings.

4.2 Images

You can add images into a slideshow using File -> Add Image and File -> Add Images From Folder menu items.

Image element allows you to

  • Select an image file
  • Set duration
  • Select fill mode
  • Specify input filters
  • Add text on top of the image
  • Add overlay images on top of the image
  • Zoom & pan

4.3 Videos

You can add videos into a slideshow using File -> Add Video and File -> Add Videos From Folder menu items.

Video element allows you to

  • Select a video file
  • Trim video
  • Select fill mode
  • Specify input filters
  • Add text on top of the video
  • Add overlay images on top of the video
  • Zoom & pan

4.4 Transitions

Transitions can be added using File -> Add Transition menu item.

Transition element allows you to select a transition and set transition specific options.

There is also a File -> Add Random Transition option to automatically add a random Transition to all adjacent Image and Video elements in the slideshow.

4.5 Settings

Settings element is mandatory in all slideshows. It is the last element, and it can't be deleted or moved.

Settings element allows you to

  • Specify script name
  • Specify slideshow file name
  • Set background color
  • Set background image
  • Specify slideshow video options

4.6 Audio

By default, audio streams in video inputs are ignored and dropped. Audio element allows to preserve audio and use silence for images and videos without audio.

Audio element allows you to specify slideshow audio options.

4.7 Background Audio

Background Audio element allows you to select an audio file and use it in your slideshow as audio.

4.8 Preferences

Preferences frame allows you to

  • Set overwrite options
  • Define default save location for scripts
  • Specify FFmpeg / FFprobe path

4.9 Fonts

Fonts frame allows you to register fonts available for Text elements.

4.10 Text Messages

You can add unlimited number of text messages on top of your images/videos.

Text element allows you to

  • Set text message
  • Select a registered font
  • Specify text size and color
  • Set text position
  • Define a text box

4.11 Overlay Images

You can add unlimited number of overlay images on top of your images/videos.

Overlay Image element allows you to

  • Select an overlay image file
  • Specify input filters
  • Set image opacity
  • Set image position
  • Set image size

4.12 Input Filters

Input filters block allows you to apply custom filters for files imported in Images/Videos/Overlay Images elements.

Examples

format=rgba = Specify input pixel format

colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3 = Convert input to grayscale

boxblur=10:4 = Apply blur effect

5. Example

Below you can see the video created for the example.vssg slideshow.

6. Known Issues

  • Collapse Circular, Expand Circular, Fade In Two, Rotate, Sliding Bars and Spin Blur Rotation transitions require alpha channel. If your input file type does not support alpha channel then these transitions will not work as expected. You can overcome this situation by specifying format=rgba as input filter for input files connected to those transitions.

  • Transitions supporting bar count require bar count to be defined according to the following rule.

    On horizontal transitions 'height/(bar count)', on vertical transitions 'width/(bar count)' should be even. If not, horizontal/vertical lines may appear during the transition.

  • You can see the following messages if you enable audio in your slideshows. They are for informational purposes only and do not cause any errors.

    [Parsed_amerge_128 @ 0x7ffca1c7d440] No channel layout for input 1 [Parsed_amerge_128 @ 0x7ffca1c7d440] Input channel layouts overlap: output layout will be determined by the number of distinct input channels

  • If the sum of transition durations for a video is equal or bigger than the video duration then your script fill fail with the following error. You need to review transition durations and decrease if necessary.

    Assertion start_sample < end_sample || (start_sample == end_sample && !frame->nb_samples) failed at libavfilter/trim.c:303

7. Tips

Memory

  • Scripts can consume too much memory depending on your input file count and characteristics. If you experience memory issues, split your images/videos into two or more smaller sets, create partial videos for each set and concatenate them in a new slideshow.

8. Contributing

Feel free to submit issues. Please include your slideshow (.vssg file) and input media information in your issues.

9. License

Video Slideshow Script Generator binary releases are licensed under the ARTHENICA Personal License.

Video Slideshow Script Generator source code and scripts are licensed under the ARTHENICA Commercial License.

Icons used in Video Slideshow Script Generator are published in Dripicons 2.0 which is licensed under the Creative Commons Attribution 4.0 International License.

FFmpeg is a trademark of Fabrice Bellard, originator of the FFmpeg project

9.1 Permissions

use copy modify merge publish distribute sublicense sell
ARTHENICA Personal License Yes Yes Yes Yes - - - -
ARTHENICA Commercial License Yes Yes Yes Yes - Yes Yes Yes

9.2 ARTHENICA Personal License

ARTHENICA Personal License

Copyright (c) 2019-2022, Taner Sener (https://github.com/tanersener), All rights reserved.

Permission is hereby granted, to any person obtaining a copy of this software and associated documentation files (the "Software"), to use, copy, modify and merge, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

9.3 ARTHENICA Commercial License

ARTHENICA Commercial License

Copyright (c) 2019-2022, Taner Sener (https://github.com/tanersener), All rights reserved.

Permission is hereby granted, to any person obtaining a copy of this software and associated documentation files (the "Software"), to use, copy, modify, merge, distribute, sublicense, and/or sell copies of the Software, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.