JSVM实现可伸缩视频编码(SVC)


前言

这篇文章主要介绍了Ubuntu16.04下如何使用JSVM来实现可伸缩视频编码。主要参考了https://github.com/ChristianKreuzberger/DASH-SVC-Toolchainhttps://blog.youkuaiyun.com/qq_41895113/article/details/80561218

一、JSVM安装和测试

1.安装

JSVM并不是和所有Ubuntu版本都兼容,我之前下载了好几个版本的JSVM都没成功,最后下载这个版本(https://github.com/floriandejonckheere/jsvm)的JSVM在Ubuntu 16.04上终于安装成功了,安装步骤也比较简单。将下载的JSVM压缩包解压,在文件夹jsvm/JSVM/H264Extension/build/linux下直接make就安装成功了。

 cd /home/songfeng1256/Desktop/SVCDemo/jsvm/JSVM/H264Extension/build/linux
 make

为了能够在其他路径下调用JSVM提供的编解码器,将可执行文件添加到PATH路径中。在root权限下打开配置文件。

#切换到root权限
sudo su
#打开配置文件
gedit ~/.bashrc 
#在最后一行添上:
export PATH=/home/songfeng1256/Desktop/SVCDemo/jsvm/bin:$PATH
#生效方法:(有以下两种)
#1、关闭当前终端窗口,重新打开一个新终端窗口就能生效
#2、输入“source ~/.bashrc”命令,立即生效
#有效期限:永久有效
#用户局限:仅对当前用户

2.测试

任意位置打开终端输入

H264AVCDecoderLibTestStatic

出现下图所示即成功安装JSVM,并成功配置路径在这里插入图片描述

二、编码和解码

1.编码-质量伸缩性

参考http://concert.itec.aau.at/SVCDataset/这里面提供的四种编码方式,分别给出了配置文件。
在这里插入图片描述

本文选择的是第一种编码方式,通过改变量化步长来改变质量,进而实现可伸缩视频编码。首先新建一个测试文件夹,e.g SVCDemo,在文件夹内新建配置文件,由于本文选择的是360p的视频,配置文件参考http://ftp.itec.aau.at/datasets/SVCDASHDataset2015/config/I/JSVM/360p/。其中一共有四个配置文件。对于输出配置文件,设置如下,其中NumLayers决定需要编码的层数,LayerCfg为各个层的配置文件。
下面为别为一层、两层和三层的配置文件。

#只有一个增强层
# JSVM Main Configuration File for Sintel Spatial

OutputFile             output_360p.264     # Bitstream file
FrameRate               24.0               # Maximum frame rate [Hz]
FramesToBeEncoded       300               # Number of frames 

BaseLayerMode		    2

IntraPeriod            48              # Intra Period
GOPSize                 4              # GOP Size (at maximum frame rate)

SearchMode		      4
SearchRange		      32

FastBiSearch          1

NumLayers		      1         
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值