Decoding
There are a broad range of options for playing back LCEVC-enhanced content across the majority of popular devices and platforms. This is facilitated by the low-complexity nature of the standard which enables simple software updates to apps and web pages which use generic CPU or GPU processing to upgrade to LCEVC-enhanced streaming. This is typically achieved without any impact on overall decode processing load or battery consumption compared to natively encoded content.
This page outlines two fundamental paths for testing playback of your LCEVC-enhanced content:
Playing back content locally (e.g. MP4 files you have created with FFmpeg)
Playing back remote packaged content (e.g. HLS or MPEG-DASH manifests)
Playing back local content
If you are testing LCEVC-enhanced encoding locally there are several options outlined in this section for playing back either MP4 or MPEG-TS. These options are FFmpeg, ExoPlayer or the V-Nova application on Windows.
1. FFmpeg
Decode LCEVC in ffplay for playback.
Using the same process as decoding in FFmpeg described in step 4, if decoding for playback using the V-Nova SDK the video codec input type must be specified before the input (see below).
We suggest using the test file created in section 3 to confirm the workflow is functioning correctly.
.\ffplay.exe -vcodec lcevc_h264 -i ${INPUT_PATH}
This will then open a window for preview of the video. If the playback does not include the test enhancement layer with bouncing squares, then LCEVC layer has not been decoded.
Once you have confirmed the process using the test with the bouncing squares, you can then run the encode / decode process with your real video stream to observe the benefits of LCEVC in terms of reduced file size and improved quality etc.
Decode LCEVC in FFmpeg for file conversion or analytics
To decode a file using the V-Nova SDK, the video codec input type must be added to the command line, before the input file is specified (see below).
We suggest using the file created in section 3 to confirm the workflow is functioning correctly.
.\ffmpeg -vcodec lcevc_h264 -i ${INPUT_PATH} -c:v rawvideo output_%width_%height.yuv
If playback of the output YUV file does not include the bouncing squares, then LCEVC layer has not been decoded correctly. Tools such as Vooya or YUV Toolkit can be used to play back the YUV file with additional view and analysis options. FFplay can also be used for simple decoding of YUV files.
Similarly, to run VMAF using ffmpeg, you must specify the encoded file first before stating the reference (source) file.
.\ffmpeg.exe -vcodec lcevc_h264 -i input_LCEVC_encoded.ts -s 1920x1080 -pix_fmt yuv420p -i input_source_1920x1080_50.yuv -lavfi libvmaf="model_path=vmaf_v0.6.1.pkl:log_path=VMAF_lcevc_score.txt" -f null -
2. ExoPlayer
If you have been provided with the LCEVC-enabled ExoPlayer reference integration as part of your evaluation, you can use the pre-built LCEVC ExoPlayer APK to play back both local content or from a URL.
The app can play:
Local files, by selecting the GO button with an empty URL field
A URL entered in the URL field (e.g. HLS or MPEG-DASH manifest link)
Go here for more information on ExoPlayer.
3. V-Nova App on Windows
V-Nova's demo application on Windows also includes the functionality to play back local files and can be downloaded here from the Microsoft Store.
To play back local content simply select "Launch Player" from the app's login screen:
Once the player has launched click on the browse icon on the app's toolbar to select a local file:
Playing back remote packaged content
If you have encoded content and packaged it as HLS or MPEG-DASH for delivery via a CDN you have a variety of options to play back those streams. Please note that if you have encoded content on the V-Nova Platform then you can play back all of your content simply by signing into any of the V-Nova apps - see Playing back content encoded on the V-Nova platform.
1. V-Nova Web Player
Head to player.v-nova.com and after signing in you can select "Launch Player" from the menu in the top-left of the screen. This will bring up a player that allows you to specify any stream manifest link for playback. The player used by this site is our LCEVC-enabled reference integration in Shaka Player.
2. V-Nova Windows App
As mentioned above, V-Nova's demo application on Windows can play back local files as well as remote content and can be downloaded here from the Microsoft Store.
To play back any content simply select "Launch Player" from the app's login screen:
Once the player has launched, specify the URL you wish to play and click "Load":
3. Using other reference integrations
If as part of your evaluation you have been provided downloads of any of the following, the included test applications or reference builds can be used to play back any streams of your choosing:
ExoPlayer - the included Exo-DIL APK can be installed and used to play remote streams
Shaka Player - Simply host the reference demo build on a web server and specify your streams in the URL field at the top of the player.
hls.js - Simply host the reference demo build on a web server and specify your streams in the URL field at the top of the player.
LCEVC AVPlayer - the provided github project contains a test application which can be built and used to testing of streams on iOS devices.
Playing back content encoded on the V-Nova platform
Playing back content that you have encoded on the V-Nova platform is very straightforward as the platform is fully integrated with the V-Nova demo applications which are available from all of the major app stores. Simply sign into the V-Nova demo application using your V-Nova Platform credentials and all of your content will be listed for playback directly within the app.
Search "V-Nova" or "LCEVC" on the relevant store or follow the links below:
Download here from the Apple AppStore
Download here from the Google PlayStore
Download here from the Microsoft Store
A website version of the V-Nova application is also available here.
Integrating playback in your applications
LCEVC-enhanced decoding is deployable in software at a variety of levels in your software stack. After testing encoding and playback, should you wish to proceed with testing integration within your own players please review the documentation sections on our Reference Integrations and Decoder Integration Layer and contact us for more details.
A range of other decoding implementations are also available including AOSP and MFT. Contact us to find out more.
Last updated