2017-05-27 26 views
1

gstreamerを使用してファイル/ RTMP/RTSPストリームからオーディオを変換して分析しています。(uri)decodebinでビデオファイルからオーディオを再生するGstreamer - CPU使用率が高い

ソースファイルがビデオまたはビデオストリームの場合、gstreamerは多くのCPUを使用します。

例1(ビデオ) - htopが示すように、CPUの30〜35%を使用します。

gst-launch-1.0 uridecodebin uri='test.mp4' ! autoaudiosink 

例2(ビデオファイルからのffmpeg -cコピーに変換し、上記オーディオ) - どのように私は私が唯一のビデオからオーディオソースを必要とするように指定することができ

gst-launch-1.0 uridecodebin uri='test.mp3' ! autoaudiosink 

CPUの百分の2から4を使用していますファイル?

私はユーザーからどのファイル(フォーマット)を入手するのかわからないので、私はdecodebinを使用しています。あなたが設定されたフラグプロパティplaybin使用することができ、上記の例のための

答えて

1

flags    : Flags to control behaviour 
         flags: readable, writable 
         Flags "GstPlayFlags" Default: 0x00000617, "soft-colorbalance+deinterlace+soft-volume+text+audio+video" 
          (0x00000001): video   - Render the video stream 
          (0x00000002): audio   - Render the audio stream 
          (0x00000004): text    - Render subtitles 
          (0x00000008): vis    - Render visualisation when no video is present 
          (0x00000010): soft-volume  - Use software volume 
          (0x00000020): native-audio  - Only use native audio formats 
          (0x00000040): native-video  - Only use native video formats 
          (0x00000080): download   - Attempt progressive download buffering 
          (0x00000100): buffering  - Buffer demuxed/parsed data 
          (0x00000200): deinterlace  - Deinterlace video if necessary 
          (0x00000400): soft-colorbalance - Use software color balance 

あなたがオーディオを抽出し、それをトランスコードする場合、あなたはおそらくいくつかのコードを記述する必要があります。

+2

デコードビンとappsinkで動作するパイプラインが既にあります。これにより、生のトランスコードされたpcm16 16khzオーディオにアクセスできます。感謝します! 私は問題を見つけたようです。 Decodebin2(これは再生ビンで使用されます)は、ソースファイル/ stream/etcにあるすべてのストリームをデコードします。現在開発中のdecodebin3のように見えますが、無駄なCPU使用量を取り除くつもりです。 –

関連する問題