GStreamer下的音视频播放

时间:2022-12-26 08:43:46

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

Container

Demux

mpeg/mpg

dvddemux

mp4/3gp

ffdemux_mov_mp4_m4a_3gp_3g2_mj2

mkv

matroskademux

mov

qtdemux

flv

ffdemux_flv

avi

avidemux

wmv

asfdemux