【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
編碼格式 |
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
(注:藍色部分為根據具體編碼格式從下表中選取替換。輸出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 |