多媒体系列
玄道公子
玄道男标准宅男其他资料暂时不详
展开
-
gstreamer移植qnx(五):编写gstreamer插件audio sink和video sink
一、概述 因为gstreamer没有提供qnx系统的支持, 因此这里要实现音频和视频的播放,就必须自己实现最终的音视频输出的元件,即sink元件,一开始,我的想法是,可否移植开源的音视频输出库,比如sdl,alsa等等, 但是发现有些麻烦, 反而把事情弄的更复杂了。 最终还是踏踏实实的两个gstreamer的sink元件,用来输出音频和视频。 要编写gstreame...原创 2020-01-17 15:00:13 · 2492 阅读 · 0 评论 -
gstreamer移植qnx(四):交叉编译qnx版本的gstreamer插件库
一、简介 要移植gstreamer到qnx系统,除了本身的libgstreamer之外,还需要编译相关的插件库,比如编解码库,比如各种音视频容器库。二、 编译plugin base 库 这里笔者一开始使用的和libgstreamer库一样,使用configure的方式,写一个myconfig.sh来编译,但是发现编译出来的plugin library会带有rpa...原创 2019-11-27 11:38:19 · 2545 阅读 · 0 评论 -
gstreamer移植qnx(三):交叉编译gstreamer之 libgstreamer
一、简介 这里使用的gstreamer是1.16.1版本,移植使用的qnx版本为6.6.二、使用configure方式编译2.1 编写配置用的脚本这里为了方便,将./configure xx之类的东西写入一个shell脚本当中, 其文件名为:myconfig.sh,其内容如下:./configure --prefix=/media/guwen/workspace/pr...原创 2019-11-21 17:34:13 · 1757 阅读 · 0 评论 -
gstreamer移植qnx(二):交叉编译glib
一、简介 这里以glib的2.63.0版本,QNX系统的版本是:6.6 。这里是为了编译gstreamer的依赖库,也就是说最终目标,是将gstreamer移植到QNX6.6系统上。 我选择的是gstreamer 1.16,他需要的glib版本是2.40以上,因此就索性使用最新的glib版本。 编译用的host系统是Ubuntu18.04。二、准备cross-file ...原创 2019-11-20 17:02:24 · 3108 阅读 · 10 评论 -
VLC学习笔记(1): 概述
以前看过VLC的代码,学习过VLC相关的知识,现将其记下来以作备忘 注:本记录是以VLC2.0作为参考,如有出入,请先核对版本号 一、简介VLC多媒体播放器(最初命名为VideoLAN客户端)是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影音光盘及各类流式协议。它也能作为unicast或 multicast的流式服务原创 2017-03-29 20:11:20 · 515 阅读 · 0 评论 -
gstreamer 学习笔记(4): Gstvideodecoder
一、简介GstVideoDecoder是gstreamer提供的视频解码元件的父类(基类)元件,以方便开发者封装自己的video decoder为gstreamer的插件。当然,它也是继承自gstreamer元件的基类GstElement。注:这里同样是以gstreamer 1.8.1为蓝本二、结构体GstVideoDecoder结构体GstVideoDecoder是video decoder元件原创 2017-03-27 11:48:43 · 4859 阅读 · 3 评论 -
gstreamer学习笔记(3):message,event,signal区别
注:本篇笔记以gstreamer 1.8.1 版本为蓝本,若有出入的地方,请确认版本信息message在gstreamer中,message或者说Bus message(因为message都是在GSTBus上传递的),是用于gstreamer和application之间交互用的,比如当一个文件播放结束的时候,gstreamer会发一个EOS的message到GstBus上,如果app有去侦听(函数原创 2017-03-27 10:16:38 · 4553 阅读 · 0 评论 -
gstreamer 学习笔记(2): GstElement状态
注:这里同样是以gstreamer 1.8.1为蓝本一、状态定义在gstreamer中GstElement的状态定义如下:typedef enum { GST_STATE_VOID_PENDING = 0, GST_STATE_NULL = 1, GST_STATE_READY = 2, GST_STATE_P原创 2017-03-16 09:20:26 · 6400 阅读 · 0 评论 -
gstreamer学习笔记(1): 调试相关
注:本篇笔记以gstreamer 1.8.1 版本为蓝本,若有出入的地方,请确认版本信息1. log调试信息的函数在 gstreamer 1.8.1版本中定义了如下的log输出宏:1.1 最基本的log输出宏 GST_CAT_LEVEL_LOG(cat,level,object,...)其中cat:表示category,用于区分log信息的类别,在后面说到debug level等信息的设置的时候会原创 2017-03-15 19:59:11 · 7400 阅读 · 0 评论 -
gstreamer移植qnx(一):概览篇
接触qnx系统也有两三年了,一直都是基于其上的mmr进行多媒体播放器的开发。 但是这个mmr资料少,且很多参数,资料上没有,必须给钱向qnx公司咨询才行。 于是就有这么一个念头,移植一个开源的播放器到qnx平台上。之前也有尝试过移植VLC和gstreamer,但是因为工作时间比较忙,草草的尝试了一下,有因为需要自己动手编写最终的音视频输出插件,觉得有些麻烦,然后就这样放弃了。...原创 2019-11-19 17:39:51 · 1892 阅读 · 0 评论 -
使用FFmpeg命令实现音视频转码的备忘录
FFmpeg是比较经典,也是比较流行的多媒体工具库(demux,mux, decode,encode等等),支持格式也比较丰富,也比较实用。做多媒体开发的经常都需要使用到各种格式的音视频对自己的开发成果进行测试。 要收集齐这些音视频测试文件可不容易,尤其是要精确到profile,比如h264的BP/MP/HP, mpeg4的SP/ASP等等。这里就到了转码工具出场的时间了, 网上也可以找到不少免费...原创 2018-04-19 16:56:23 · 1559 阅读 · 0 评论 -
avformat的简单应用
注意:本文是基因FFMPEG的3.3.1 版本,如有出入请先核对版本是否相同一、简介avformat是包含复用(mux),解复用(demux)的多媒体容器库,它是ffmpeg框架中比较重要的两个library之一,另一个是avcodec(编解码库)。avformat当中包含了非常之多的容器格式,有很老的偏门格式,也有当今主流的多媒体容器格式。如果要实现一个多媒体播放器的话,基本上只需要ffmpeg原创 2017-06-20 15:32:31 · 6764 阅读 · 0 评论 -
配置visual studio中的ffmpeg开发环境
注意: 本文中所使用的visual studio为 community 2017 版本,ffmpeg为3.3.1 版本,如有出入请先核对版本信息一、缘起以前经常需要在Windows平台上使用visual studio来调试容器相关部分的模块,因为容器部分都是平台无关的代码,而且visual studio的单步调试等功能非常强大,可以很方便的查看内存数据,变量值等等信息。 而有时又需要使用到ffmp原创 2017-06-08 16:50:12 · 4042 阅读 · 2 评论 -
ffmpeg简介
注意:本文是基因FFMPEG的3.3.1 版本,如有出入请先核对版本是否相同一、缘起做多媒体开发这么多年,接触了不少开源库,其中FFMPEG算是接触时间比较长的一个了,之前已经介绍了gstreamer和VLC了,这里也小小的来介绍一下FFMPEG。二、简介FFmpeg(全名是Fast Forward MPEG(Moving Picture Experts Group))是全球领先的多媒体框架,能够原创 2017-06-02 15:12:58 · 1676 阅读 · 0 评论