最近与linux下的tv实现较上真了,目前也没有什么好的解决方案,是自己重头写tv播放代码,还是使用mplayer或者ffmpeg或者xine-lib等的代码;
下面简单记录一下我对这三个软件的认识:
一:mplayer:mplayer是一款linuxOS下功能比较丰富的多媒体播放器,通过
命令就可以播放tv了,hjkl有两个键可以调换频道,具体哪两个我也忘记了,播放效果还不错,唯一遗憾的地方就是不支持声音,而且mplayer可以支持x11视频显示,这一点要比只支持sdl显示的要好,比较符合我得要求;这么分析的话,mplayer播放tv的代码部分还是很值得一看的;
刚才又找到一个好东西,赶紧贴下来以做备份:
用mplayer自带的mencoder来录制tv,命令如下:
其中各项参数简介:
-ovc与-oac用来制定视频和音频编码器,分别使用
Mencoder -ovc help
Mencoder -oac help
可以查看所有支持的音视频编码器,举例:视频如lavc、xvid、x264、nuv、raw、copy、frameno,音频如mp3lame、lavc、faac、toolame、twolame、pcm、copy等;
一般视频选择lavc或xvid,音频选择lavc、mp3lame;对于视频或音频指定参数则在后面紧跟-lavcopts或-lameopts再加参数设置即可;
今天先不翻译了,改天翻译;-)
二:ffmpeg:这是一个音视频编解码转换的解决方案项目;支持多种音视频的编码转换,并且能够从视频设备如v4l或v4l2设备中直接读取视频数据并采集倒硬盘中来,因此,如果增加录制功能,此项目也是必须要看得了。使用此命令:
就可以v4l录制视频了;v4l2也即电视卡的视频我并没有录制成功过,不知道原因是什么,总是报找不到视频设备的错误;
三:xine-lib库;
这是一套功能丰富的一套多媒体库,他的前端程序例如gxine,xine,等都是linux下有名的多媒体播放器,可以看出xine-lib 库还是很值得研究的;
像要看xine-lib库是如何使用的,可以参考gxine,xine等开源的程序,这两个是基于gtk的,qt可以参考kaffine等,xine网站有相关介绍;
http://xinehq.de/index.php
这里有个好东西,如果你是用qt做前端的话:
http://qdvdauthor.sourceforge.net/qxinewidget.html
好了,今天先到这里,明天继续干。。。
下面简单记录一下我对这三个软件的认识:
一:mplayer:mplayer是一款linuxOS下功能比较丰富的多媒体播放器,通过
mplayer
-
tv driver
=
v4l2:width
=
800
:height
=
600
tv:
//
32
命令就可以播放tv了,hjkl有两个键可以调换频道,具体哪两个我也忘记了,播放效果还不错,唯一遗憾的地方就是不支持声音,而且mplayer可以支持x11视频显示,这一点要比只支持sdl显示的要好,比较符合我得要求;这么分析的话,mplayer播放tv的代码部分还是很值得一看的;
刚才又找到一个好东西,赶紧贴下来以做备份:
用mplayer自带的mencoder来录制tv,命令如下:
mencoder tv:
//
-tv driver=v4l2:device=/dev/video1:fps=30000/1001:chanlist=us-cable:audiorate=32000:
adevice =/ dev / dsp1:input = 0 :amode = 1 :normid = 4 - ffourcc DIVX - ovc lavc - lavcopts vcodec = mpeg4:mbd = 2
- oac mp3lame - lameopts cbr:br = 128 - endpos 60 - o output.avi
adevice =/ dev / dsp1:input = 0 :amode = 1 :normid = 4 - ffourcc DIVX - ovc lavc - lavcopts vcodec = mpeg4:mbd = 2
- oac mp3lame - lameopts cbr:br = 128 - endpos 60 - o output.avi
其中各项参数简介:
-ovc与-oac用来制定视频和音频编码器,分别使用
Mencoder -ovc help
Mencoder -oac help
可以查看所有支持的音视频编码器,举例:视频如lavc、xvid、x264、nuv、raw、copy、frameno,音频如mp3lame、lavc、faac、toolame、twolame、pcm、copy等;
一般视频选择lavc或xvid,音频选择lavc、mp3lame;对于视频或音频指定参数则在后面紧跟-lavcopts或-lameopts再加参数设置即可;
今天先不翻译了,改天翻译;-)
二:ffmpeg:这是一个音视频编解码转换的解决方案项目;支持多种音视频的编码转换,并且能够从视频设备如v4l或v4l2设备中直接读取视频数据并采集倒硬盘中来,因此,如果增加录制功能,此项目也是必须要看得了。使用此命令:
ffmpeg
/
tmp
/
test.mpg
就可以v4l录制视频了;v4l2也即电视卡的视频我并没有录制成功过,不知道原因是什么,总是报找不到视频设备的错误;
三:xine-lib库;
这是一套功能丰富的一套多媒体库,他的前端程序例如gxine,xine,等都是linux下有名的多媒体播放器,可以看出xine-lib 库还是很值得研究的;
像要看xine-lib库是如何使用的,可以参考gxine,xine等开源的程序,这两个是基于gtk的,qt可以参考kaffine等,xine网站有相关介绍;
http://xinehq.de/index.php
这里有个好东西,如果你是用qt做前端的话:
http://qdvdauthor.sourceforge.net/qxinewidget.html
好了,今天先到这里,明天继续干。。。