zoukankan      html  css  js  c++  java
  • 【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。

    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

  • 相关阅读:
    我要好offer之 二叉树大总结
    我要好offer之 字符串相关大总结
    楼层扔鸡蛋问题[转]
    Linux System Programming 学习笔记(十一) 时间
    Linux System Programming 学习笔记(十) 信号
    Linux System Programming 学习笔记(九) 内存管理
    Linux System Programming 学习笔记(八) 文件和目录管理
    Linux System Programming 学习笔记(七) 线程
    Linux System Programming 学习笔记(六) 进程调度
    APUE 学习笔记(十一) 网络IPC:套接字
  • 原文地址:https://www.cnblogs.com/huty/p/8517512.html
Copyright © 2011-2022 走看看