【问题标题】:Gstreamer audio problem on embedded linux嵌入式Linux上的Gstreamer音频问题
【发布时间】:2019-07-01 08:57:38
【问题描述】:

我在嵌入式 linux 上工作。我想用最少的 CPU 播放视频。所以在我完成编译后,我尝试用 mplayer 和 gstreamer 播放视频。 Mplayer 使用 CPU 平均 %10-20。我想在 gstreamer 上获得这个性能。所以我尝试了这些命令:

1-gst-launch filesrc location=video_path.mpeg ! mpegdemux ! mpeg2dec ! autovideosink

2-gst-launch-0.10 filesrc location=video_path.mpeg ! dvddemux ! mpegvideoparse ! mpeg2dec ! xvimagesink

这些命令使用平均 %10-20 CPU。这个号码就是我想要的号码。但是音频不适用于这些命令。我尝试添加音频元素,但无法实现。

我也试过gst-launch-1.0 playbin uri=file:///video_path.mpeg。音频可以使用这个命令,但是 CPU 使用率很高,我不喜欢这个。

如何使用 1 或 2 个命令处理音频?

【问题讨论】:

    标签: audio embedded-linux gstreamer hardware-acceleration mpeg


    【解决方案1】:

    1- gst-launch filesrc location=video_path.mpeg ! mpegdemux ! mpeg2dec !自动视频接收器

    2-gst-launch-0.10 文件rc location=video_path.mpeg !影碟机! mpeg视频解析! mpeg2dec ! xvimagesink

    使用上述两个管道,您要求 gtreamer 只播放视频,结果您没有收到任何音频。

    gst 启动文件rc location=video_path.mpeg ! mpegdemux 名称=解复用器 解复用器。 !队列 ! mpeg2dec ! autovideosink 解复用器。 !队列 !疯狂的 ! 音频转换!音频重采样!自动音频接收器

    上述管道应该同时播放音频和视频。

    注意:如果您支持硬件解码,可以进一步减少 CPU 使用率。

    【讨论】:

    • 另外,GstElement 应该使用这个形状:mpegdemux name=demuxer demuxer.video_00autovideosink demuxer.audio_00。否则会看到警告:pipeline: could not link queue0 to mpeg2dec0
    • 如何使用fbdevsink 进行相同的处理?你能帮忙吗?非常感谢。
    猜你喜欢
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-13
    • 2010-09-09
    • 2014-04-04
    • 1970-01-01
    相关资源
    最近更新 更多