【miscellaneous】GStreamer下的音视频播放
Gst-launch命令:
gst-launch filesrc location=*.* ! demux name=demux demux.video_00 ! queue ! decoder ! ffmpegcolorspace ! videoscale ! ximagesink
(注:蓝色部分为根据具体编码格式从下表中选取替换,注意demux是根据容器格式选取的,下表中只是列出了此编码格式较常见的视频封装容器的demux,对于其它demux可参照注2中的表进行查询。输出sink还可以选取其它,如xvimagesink。若要同时播放音频,则在上句后面加上demux.audio_00 ! queue ! codec ! alsasink)
编码格式 |
Demux |
Decoder |
备注 |
|
视频 |
MPEG1 |
dvddemux/mpegdemux |
ffdec_mpegvideo |
|
MPEG2 |
dvddemux/mpegdemux |
ffdec_mpegvideo |
||
MPEG4 |
ffdemux_mov_mp4_m4a_3gp_3g2_mj2 |
ffdec_mpeg4/omx_mpeg4dec |
用omx_mpeg4dec播放时偶有丢帧现象 |
|
H.264/AVC |
ffdemux_mov_mp4_m4a_3gp_3g2_mj2 |
ffdec_h264/omx_h264dec |
用omx_h264dec播放时偶有丢帧现象 |
|
DivX |
avidemux/ffdemux_avi |
ffdec_mpeg4/omx_mpeg4dec |
||
XviD |
avidemux/ffdemux_avi |
ffdec_mpeg4/omx_mpeg4dec |
||
VC-1 |
asfdemux |
ffdec_wmv3 |
播放时视频很流畅,音频不是很流畅,会丢失,但同步。ffdemux_asf不可用,能出窗口,不能播放。omx_wmvdec不可用。 |
Gst-launch命令:
gst-launch filesrc location=*.* ! demux ! decoder ! alsasink
(注:蓝色部分为根据具体编码格式从下表中选取替换。输出sink还可以选取其它,如osssink。)
编码格式 |
Demux |
Decoder |
备注 |
|
音频 |
mp3 |
无 |
mad/omx_mp3dec |
用omx_mp3dec播放时必须使用omx_audiosink |
ogg |
oggdemux/无 |
vorbisdec/omx_vorbisdec |
||
wma |
asfdemux/ffdemux_asf |
ffdec_wmav2 |
||
aac |
无/aacparse |
faad/ffdec_aac |
||
wav |
wavparse |
无 |
注:
1. 若要查询相关组件属于哪个库,可以在终端使用“gst-inspect+所要查询的组件名”来查询。
2. 对于视频文件,虽然同为一种编码格式,但可能它的容器不一样,所以测试时得选取特定的demux。以下给出常用视频文件容器的demux。
Demux |
|
mpeg/mpg |
dvddemux |
mp4/3gp |
ffdemux_mov_mp4_m4a_3gp_3g2_mj2 |
mkv |
matroskademux |
mov |
qtdemux |
flv |
ffdemux_flv |
avi |
avidemux |
wmv |
asfdemux |
【miscellaneous】GStreamer下的音视频播放的更多相关文章
- Android音视频之MediaPlayer音视频播放
前言: 昨天总结了视频录制,今天来学习一下视频的播放,Android的视频播放主要采用MediaPlayer类. MediaPlayer介绍 MediaPlayer类可用于控制音频/视频文件或流的播放 ...
- Pyqt 音视频播放器
在寻找如何使用Pyqt做一个播放器时首先找到的是openCV2 openCV2 貌似太强大了,各种关于图像处理的事情它都能完成,如 读取摄像头.图像识别.人脸识别. 图像灰度处理 . 播放视频等,强 ...
- AVAudioFoundation(2):音视频播放
本文转自:AVAudioFoundation(2):音视频播放 | www.samirchen.com 本文主要内容来自 AVFoundation Programming Guide. 要播放 AVA ...
- 6、Qt Project之音视频播放
音视频播放 这里简单的制作了一个音乐播放器,播放器的界面设计如下所示: Step1:这里是界面对应的HTML文件: <?xml version="1.0" encoding ...
- 开源安卓Android流媒体音视频播放器实现声音自动停止、恢复、一键静音功能源码
本文转自EasyDarwin团队John的博客:http://blog.csdn.net/jyt0551/article/details/60802145 我们在开发安卓Android流媒体音视频播放 ...
- iOS 音视频播放
播放控制切换为: ijkplayer wiki: https://github.com/changsanjiang/SJVideoPlayer/wiki/Use-ijkplayer 播放控制切换为: ...
- iOS AVKit音视频播放全面详解
公司项目中经常要用到音视频处理,也需要去定制一些东西,然后整理这些音视频处理就显得尤为重要!方便自己和广大朋友学习收藏! 以下参考连接特别重要: 苹果官方:AVKit API 苹果官方:AVFound ...
- iOS - AVPlayer 音视频播放
前言 NS_CLASS_AVAILABLE(10_7, 4_0) @interface AVPlayer : NSObject @available(iOS 4.0, *) public class ...
- 分享几个不错的Android开源音视频播放器
整理了一下Github上几个开源的音视频播放器项目,有兴趣的同学可以clone代码去研究学习. UniversalMusicPlayer https://github.com/googlesamp ...
随机推荐
- PHP 判断给定两个时间是否在同一周,月,年
判断是否在同一周 date_default_timezone_set('PRC'); //判断是否在同一周,原理:求出其中一个时间戳所在周的周一凌晨时间戳和周日24.00时间戳,如果另一个时间戳在这个 ...
- Laravel 6.0 Schedule Preventing Task Overlaps 测试
1 目的 1.1 测试 Laravel 6.0 任务执行机制 2 意义 2.1 在日常开发中,有的任务比较复杂,在两次任务的调度周期间隔中无法完成. 2.2 为了防止重复任务的持续生成和反复调用,对服 ...
- 51 NOD 1244 莫比乌斯函数之和(杜教筛)
1244 莫比乌斯函数之和 基准时间限制:3 秒 空间限制:131072 KB 分值: 320 难度:7级算法题 收藏 关注 莫比乌斯函数,由德国数学家和天文学家莫比乌斯提出.梅滕斯(Mertens) ...
- 代码 | 用ALNS框架求解一个TSP问题 - 代码详解
写在前面 前面好多篇文章,我们总算是把整个ALNS的代码框架给大家说明白了.不知道大家对整个框架了解了没有.不过打铁要趁热,心急了要吃热豆腐.今天就来实战一下,教大家怎么用ALNS的代码框架,求解一个 ...
- JDK8中好用的日期处理-LocalDate类-LocalTime-LocalDateTIme,mysql解决时区相差13小时的问题,日期格式器DateTimeFormatter
set global time_zone='+08:00'; set time_zone = '+08:00'; show variables like '%time_zone:'
- Pycharm 的常用快捷键
pycharm常用快捷键 1.编辑(Editing) Ctrl + Space 基本的代码完成(类.方法.属性) Ctrl + Alt + Space 快速导入任意类 Ctrl + Shift ...
- Ubuntu上配置vtk开发环境——基于visual studio code 与 gcc
环境说明 vtk版本7.1.1 visual studio 1.16.1 Ubuntu 16.04 + 自带的gcc 编译过程与windows下类似还好,运行自己的代码开始面对cmake与make的各 ...
- ansible user模块
查看模块的功能和选项,使用ansible-doc命令 ansible-doc options: -l #查看所有可用的模块 -m #查看模块的路径 -v #查看版本 -t TYPE #查看插件,插件: ...
- hdu2476(区间dp+dp)
String painter Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- C语言联合
联合使用关键字union,表示的一种量,只占用一块内存,具体如何占用取决于类型最大的那个.比如int和float会选用float. 联合也可以和结构体结合起来用,也可以赋值,通过.属性名的方式指定初始 ...