Sample applications
HTML5 Editor Sample
This sample application demonstrates the use of Video Editing SDK technologies for web application. Sample application is a locally installed webserver and available by url http://localhost
Also HTML5 Editor available online by url https://smarteditingonline.solveigmm.com
It consist of:
- Backend
- Frontend
- Editing node, thumbs_build node, Convert node docker containers
It uses Kafka for task distribution, MongoDB as a database and Kurento media server for the voiceover feature.
Current features:
- Adding several files to continuous timeline
- Select trimming fragments.
- Frame accurate seeking along the timeline with many files
- See playback/preview of the timeline with trimmed fragments. Playback drops fragments to be set as deleted
- Saving result as one file with frame accuracy without full re-encoding
- Inserting fade-in, fade-out, dissolve transitions/effects to the output file
- Overlaying pictures and text to videos
- Adding voiceover and mixing audio from separate audio files
Media files formats
The sample application operates with
- MP4/MOV media files containing H.264 Video (Baseline profile) and AAC audio
- MXF files containing XDCAM and XAVC video
- PNG, JPEG pictures
- MP3 audio files
Operation environment requirements
Requirements to use Docker:
Windows 11 64-bit: Pro version 21H2 or higher, or Enterprise or Education version 21H2 or higher.
Windows 10 64-bit: Pro 21H1 (build 19043) or higher, or Enterprise or Education 20H2 (build 19042) or higher.
For Windows 10 and Windows 11 Home the WSL 2 feature for Windows should be enabled.
Hyper-V and Containers Windows features must be enabled.
The following hardware prerequisites are required to successfully run Client Hyper-V on Windows 10:
- 64 bit processor with Second Level Address Translation (SLAT)
- 4GB system RAM
- BIOS-level hardware virtualization support must be enabled in the BIOS settings.
We recomend to use Google Chrome browser. Other browsers may run slower or have some issues.
Input / output directories
HTML5 Editor Demo's main installation directory {HTML5 DIR}
:
{SDK DIR}\Bin\release\SMM_HTML5_Editor_local
Input files are stored in the directory:
{HTML5 DIR}\smm_cloud_editor_v2\shared\files
The trimmed files will be stored in the directory:
{HTML5 DIR}\smm_cloud_editor_v2\output_files
To change the input and output files directories you need to modify the following values accordingly: SHARED_PATH
, OUTPUT_PATH
You may specify the values as relative paths (relative to the location of the current file .env
).
You can also upload your own files.
Configuration notes
The configuration file for the HTML5 Editor is named .env
and is located in the HTML5 Editor Demo's main installation directory
{HTML5 DIR}\
To modify any necessary properties you need to edit this file as a text file. To apply the modified properties you also need to restart the service.
Before the actual running you should do the following:
- Replace
MASTER_SERVER_IP
with the real IP address ( 127.0.0.1 and local host will not work) - For the server instance these ports should be exposed and accessible for
MASTER_SERVER_IP
:- 9092 - kafka
- 27017- mongodb
- 80 - nginx front
- 3478 (TCP and UDP) - coturn To keep mongo db each run, create volume with docker and add it to editor-db container config
Pull docker images:
docker-compose pull
docker image prune -f
Run the server:
docker-compose up -d --force-recreate
Stop the server:
docker-compose down
Functionality activation
In order to test rendering please send request to e-mail: support@solveigmm.com.
Replace EDIT_ENGINE_KEY
variable in configuration file to the actual key.
C++ Samples
SolveigMM Batch Splitter (SMM_BatchSplit)
This console application demonstrates using SolveigMM Video Editing Engine. It illustrates one of the engine features - supporting batch of tasks (trimming, join, slicing). The tasks must be described within a batch file (*.xtl) to be an input parameter of BatchSplit sample application.
For more info please see SDK Batch file structure
SMM Trim C++
It illustrates frame accurate trimming of MXF, HLS, HEVC, AVC, MPEG2, WEBM, AVCHD, FLV, MKV, MP4, MOV, MP3, MPEG1, WAV, WMA, ASF, AVI file formats.
C++ Multiplexing Samples
SMM Mux C++: ASF
This sample demonstrates using SolveigMM ASF Muxer Filter within DirectShow Graph. It shows how to multiplex video/audio streams encoded by third party codecs into Microsoft ASF format. It supports AVI to ASF re-multiplexing, WMV to ASF re-multiplexing, WMA to ASF re-multiplexing, MPEG-2 Program or Transport stream to ASF re-multiplexing, MPEG-4 AVC video contained in MP4 or MPEG-2 TS format to ASF re-multiplexing, MPEG-1,2 audio to ASF re-multiplexing.
SMM Mux C++: MKV, MP4, MOV, WEBM
This sample demonstrates using SolveigMM Muxer Filter within DirectShow Graph. It shows how to multiplex video/audio/subtitles streams encoded by third party codecs into Matroska, MP4, MOV and WEBM format.
For WEBM format the supported video codec is VP8, audio codec is Vorbis.
SMM Mux C++: FLV
This sample demonstrates using SolveigMM FLV Muxer Filter within DirectShow Graph. It shows how to multiplex video/audio streams encoded by third party codecs into FLV format.
SMM_Join_C++
The sample application is to show the most significant steps to perform joining operation of MXF, HLS, HEVC, AVC, MPEG2, WEBM, AVCHD, FLV, MKV, MP4, MOV, MP3, MPEG1, WAV, WMA, ASF, AVI file formats.
Other C++ Samples
SolveigMM XTL Preview
This console application demonstrates using SolveigMM Timeline Preview Object Filter. It illustrates creating preview graph for given XTL task.
SolveigMM ASF Markers
This console application demonstrates using SolveigMM Video Editing Engine. It illustrates ASF markers workflow - add a marker to ASF, remove particular marker from ASF, list all the markers from input ASF.
SolveigMM AVI Trimmer Console Utility (SMM_DShowAVITrim)
This sample demonstrates using SolveigMM AVI Muxer Filter within DirectShow Graph. It shows how to trim the AVI file from command-line.
SolveigMM MP4 to ASF for PlayReady (SMM_MP4ToASF_C++)
This sample demonstrates using SolveigMM ASF Muxer Filter within DirectShow Graph. It shows how to remux MP4 file to Microsoft PlayReady ASF file from command-line.
SolveigMM Video Splitter (SMMVSplitter_X64)
This sample application demonstrates using SolveigMM Video Editing Engine and ActiveX time line control. It also demonstrates displaying route on Yandex, Google maps and speedometer, compass, accelerometer readings, displaying extra camera view on avto DVR media files.
SolveigMM Screenshot Grabber (SMM_VideoScreenshotGrabber_C++)
This sample application demonstrates using SolveigMM Thumbnails Generation Library. It allows to get the screenshot or the sequence of screenshots on the selected time interval.
MPEG-TS to MP4 smart remux console utility (SMM_TS2MP4)
This utility converts the input MPEG-TS (containing AVC video and AAC audio) file or its part into an MP4 file with the additional option of adding AAC audio.
MP4 transcoding console utility (SMM_MP4Transc)
The utility transcodes the input MP4 file (containing HEVC or AVC video and AAC audio) in accordance with the reference file's compression parameters.
C# Samples
SMM Trim C#
This sample demonstrates using SolveigMM Video Editing Engine. It illustrates one of the engine features ASF, AVCHD, AVI, FLV, HEVC, MKV, MOV, MP3, MP4, MPEG1, MPEG2, WAV, WMA and WEBM files multipart trimming.
SMM Join C#
The sample application is to show the most significant steps to perform joining operation for formats: ASF, AVCHD, AVI, MKV, MOV, FLV, HEVC, MP3, MP4, MPEG1, MPEG2, WAV, WMA, WEBM. Joiner is based on SolveigMM Video Editing Engine, which uses SolveigMM Media Joiner filter and meets its restrictions (see SMM MediaJoiner description).
SMM Mux C#
This sample demonstrates using SolveigMM components to re-multiplex input MXF file into MP4 or MOV file.
Other C# Samples
SolveigMM BMPs to AVI Utility
The .NET C# sample application performs using BMPToAVI.dll to produce the AVI video file from BMPs.
Delphi Samples
SMM Trim Delphi
This is a Delphi Sample demonstrating the usage and tuning of SMM_EditingEngine to implement trimming of ASF, AVCHD, AVI, MKV, FLV, HEVC, MOV, MP3, MP4, MPEG1, MPEG2, WAV, WMA, WEBM files. It also demonstrates "Current position image callback from Timeline OCX control" feature by displaying current slider position image.
SMM Join Delphi
This is a Delphi analogue of SimpleJoiner sample. It demonstrates how to perform joining ASF, AVCHD, FLV, HEVC, AVI, MKV, MOV, MP3, MP4, MPEG1, MPEG2, WAV, WMA, WEBM files using Delphi language.
VB.Net Samples
SMM Trim VB.Net
This sample application is intended to show the usage of EditingEngine in .Net environment with VisualBasic language to trim ASF, AVCHD, FLV, HEVC, AVI, MKV, MOV, MP3, MP4, MPEG1, MPEG2, WAV, WMA, WEBM files.
SMM Join VB.Net
This sample application is intended to show the usage of EditingEngine in .Net environment with VisualBasic language to join ASF, AVCHD, FLV, HEVC, AVI, MKV, MOV, MP3, MP4, MPEG1, MPEG2, WAV, WMA, WEBM files.
Python Samples
Open HTML5 Video Editor sample script (open_html5editor)
A sample script that uses an HTML5 Video Editor's API to open the online version of the editor and load a file in it.
Source code:
{SDK dir}/samples/python/open_html5editor/open_html5editor.py