版权声明:本文为博主原创文章,欢迎转载但请注明出处
libdvbpsi是一个用于解码或者生成TS各种表的一个简单库。
对于libdvbpsi的初学者来说,首先想看到的效果就是简单的编译这个库并使用这个库中的例子生成一些自己想要的表,但是网上的许多博客只是简单的分析了一些库函数。在这里我的第一篇博客将的主要内容就是编译这个库,并用库中的一些简单例子来生成想看到的psi/si表。在后续的博客中我会详细分析PAT表和PMT表的生成,并会详细的分析里面的函数内容
libdvbpsi的官方网址:http://www.videolan.org/developers/libdvbpsi.html
下载libdvbpsi使用的命令:git clone http://git.videolan.org/git/libdvbpsi.git
这里我使用的操作系统是ubuntu-16.04
可以看到在下载的源代码中有以下文件
可以参考以下INSTALL的代码
“`
In contrast to other autotools enabled programs libdvbpsi uses a script named’bootstrap’ to generate the configure script. Others use a program’autogen.sh’
for that. For libdvbpsi you need to run:
./bootstrap
Run the configure script for development:
./configure --prefix=/usr --enable-debug --disable-release
接下来直接运行 ./bootstrap
报错: you need automake version 1.5 or later
安装automake sudo apt-get install -y automake
再次运行 ./bootstrap
报错: you need libtool
安装libtool
运行 ./bootstrap
运行成功!
ls查看一下生成的文件
可以看到生成了configure ,接下来安装库
在libdvbpsi目录下输入:./configure –prefix=/usr/local
如果看到以下信息说明安装成功,再有一步就可以成功编译库了
libdvbpsi configuration
libdvbpsi version : 2.0.0-git
debug : false
release : false
compatibility old api : true
compile flags : -g -O2 -Wall -std=gnu99 -D_GNU_SOURCE -Wpointer-arith -Wcast-align -Wstrict-prototypes -Wshadow -Waggregate-return -Wmissing-prototypes -Wnested-externs -Wsign-compare -Wcast-qual -DDVBPSI_DIST -DDVBPSI_USE_DEPRECATED_DR_API
build for : linux
此时libdvbpsi目录下的文件为
接下来直接make就可以生成库了。
可以看到在libdvbpsi目录下有个文件夹名称叫做examples,这里面放着一些使用库的简单例子,大家可以参考使用。
这里我简单使用一个例子来分析一下ts中的psi/si表。
在libdvbpsi/examples/dvbinfo中有个可执行文件dvbinfo可以生成PSI/SI表。
我用EasyICE分析了一个简单的ts,表结构如下
使用dvbinfo导出打印的表结构信息
终端输入:./dvbinfo -f **.ts >> a.txt
输出信息如下