Skip to content

A program to generate multiple representations of the input video and to calculate segment-based PSNR

Notifications You must be signed in to change notification settings

comm-iteam/dashgen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 

Repository files navigation

dashgen

Dashgen is a tool to create dash-prepared videos for testing purposes. It feature list is:

  • Encode video based on a bitrate list or a CRF list
  • Create all selected representations in one command
  • Computes a segment-by-segment PSNR for the created representations

Show the help with python3 dashgen.py -h to show:

usage: dashgen.py [-h] [-q QUALITIES [QUALITIES ...] | -b BITRATES
                  [BITRATES ...]] -c CODEC -ss SEGMENT_SIZE
                  [-fps FRAMES_PER_SECOND] [-psnr] [-vmaf] [--clean]
                  video

Generate DASH Video

positional arguments:
  video

optional arguments:
  -h, --help            show this help message and exit
  -q QUALITIES [QUALITIES ...], --qualities QUALITIES [QUALITIES ...]
                        Encoding qualities(crf)
  -b BITRATES [BITRATES ...], --bitrates BITRATES [BITRATES ...]
                        Encoding bitrates(as ffmpeg likes: 500kbps, 1M...)
  -c CODEC, --codec CODEC
                        Coded (ffmpeg)
  -ss SEGMENT_SIZE, --segment-size SEGMENT_SIZE
                        Segment size(s)
  -fps FRAMES_PER_SECOND, --frames-per-second FRAMES_PER_SECOND
                        Frames per second
  -psnr, --calculate-psnr
                        Calculate PSNR
  -vmaf, --calculate-vmaf
                        Calculate VMAF
  --clean               Remove segment files

Where codecs could be one of libx264, libx265 or vp9

A command example would be:

python3 dashgen.py -c vp9 -q 40 50 60 -ss 10 -fps 24 -psnr --clean tos.y4m

And the resulting psnr values will be found on the generated psnr_XXX.json where XXX could be crf or bitrate

Please considere reference this work if this software if useful for you:

@article{DEFEZ2020126,
title = {New objective QoE models for evaluating ABR algorithms in DASH},
journal = {Computer Communications},
volume = {158},
pages = {126-140},
year = {2020},
issn = {0140-3664},
doi = {https://doi.org/10.1016/j.comcom.2020.05.011},
url = {https://www.sciencedirect.com/science/article/pii/S0140366419312800},
author = {Ismael {de Fez} and Román Belda and Juan Carlos Guerri},
keywords = {Quality of Experience (QoE), Dynamic Adaptive Streaming over HTTP (DASH), Peak Signal-to-Noise Ratio (PSNR), Video Multimethod Assessment Fusion (VMAF), Adaptive Bitrate Streaming (ABR), ITU-T P.1203},
abstract = {As users become more demanding with regards to the consumption of multimedia content, the importance of measuring their level of satisfaction is growing. The difficulty in terms of time and resources for assessing the Quality of Experience (QoE) has popularized the use of objective QoE models, which try to emulate human behavior regarding the playback of multimedia streaming. Some objective QoE models existing in the literature are based on the bitrate. However, the PSNR (Peak Signal-to-Noise Ratio) or VMAF (Video Multimethod Assessment Fusion) have been proved to be metrics with a closer relationship with the QoE than the bitrate. This paper proposes three new models to measure the QoE analytically in DASH (Dynamic Adaptive Streaming over HTTP) video services. The first is based on the bitrate of the displayed video segments, whereas the second and the third are based on the PSNR and VMAF of each video segment, respectively. The proposed models are compared to the ITU-T standard P.1203 as well as the bitrate-based QoE model proposed by Yin et al. Moreover, the paper presents a subjective study, which confirms the validity of the proposed models. The models are validated by using different DASH adaptation algorithms. In this sense, this paper also presents a DASH ABR (Adaptive Bitrate Streaming) algorithm called Look Ahead, which takes into account the inherent bitrate variability of the video encoding process in order to calculate, in real time, the appropriate quality level that minimizes the number of stalls during the playback.}
}

About

A program to generate multiple representations of the input video and to calculate segment-based PSNR

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages