1. 程式人生 > >【miscellaneous】GStreamer下的音視訊播放

【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。

mpeg/mpg

dvddemux

mp4/3gp

ffdemux_mov_mp4_m4a_3gp_3g2_mj2

mkv

matroskademux

mov

qtdemux

flv

ffdemux_flv

avi

avidemux

wmv

asfdemux