2016-06-03 3 views
1

Я пытаюсь использовать gstreamer в odroid C1 +. Я установил GStreamer, база, хороший, некрасивый, плохой, libav получать отсюда https://gstreamer.freedesktop.org/modules/Gstreamer no element error (lamemp3enc)

следующие здесь http://linuxfromscratch.org/blfs/view/svn/index.html

Но когда я бегу, как этот

gst-launch-1.0 -e pulsesrc device="alsa_input.usb-046d_0809_52A63768-02.analog-mono" ! audioconvert ! lamemp3enc target=1 bitrate=64 cbr=true ! filesink location=audio.mp3 

Я получаю ошибку

WARNING: erroneous pipeline: no element "lamemp3enc" 

Как мне это сделать?

++

Я бегу

GST_PLUGIN_PATH=/usr/lib/gstreamer-1.0/ gst-inspect-1.0 lamemp3enc 

и получить

Factory Details: 
    Rank      primary (256) 
    Long-name    L.A.M.E. mp3 encoder 
    Klass     Codec/Encoder/Audio 
    Description    High-quality free MP3 encoder 
    Author     Sebastian Dröge <[email protected]> 

Plugin Details: 
    Name      lame 
    Description    Encode MP3s with LAME 
    Filename     /usr/lib/gstreamer-1.0/libgstlame.so 
    Version     1.8.1 
    License     LGPL 
    Source module   gst-plugins-ugly 
    Source release date  2016-04-20 
    Binary package   GStreamer Ugly Plugins 1.8.1 BLFS 
    Origin URL    http://www.linuxfromscratch.org/blfs/view/svn/ 

GObject 
+----GInitiallyUnowned 
     +----GstObject 
      +----GstElement 
        +----GstAudioEncoder 
         +----GstLameMP3Enc 

Implemented Interfaces: 
    GstPreset 

Pad Templates: 
    SINK template: 'sink' 
    Availability: Always 
    Capabilities: 
     audio/x-raw 
       format: S16LE 
       layout: interleaved 
        rate: { 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 } 
       channels: 1 
     audio/x-raw 
       format: S16LE 
       layout: interleaved 
        rate: { 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 } 
       channels: 2 
      channel-mask: 0x0000000000000003 

    SRC template: 'src' 
    Availability: Always 
    Capabilities: 
     audio/mpeg 
      mpegversion: 1 
        layer: 3 
        rate: { 8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000 } 
       channels: [ 1, 2 ] 


Element Flags: 
    no flags set 

Element Implementation: 
    Has change_state() function: gst_audio_encoder_change_state 

Element has no clocking capabilities. 
Element has no URI handling capabilities. 

Pads: 
    SINK: 'sink' 
    Pad Template: 'sink' 
    SRC: 'src' 
    Pad Template: 'src' 

Element Properties: 
    name    : The name of the object 
         flags: readable, writable 
         String. Default: "lamemp3enc0" 
    parent    : The parent of the object 
         flags: readable, writable 
         Object of type "GstObject" 
    perfect-timestamp : Favour perfect timestamps over tracking upstream timestamps 
         flags: readable, writable 
         Boolean. Default: false 
    mark-granule  : Apply granule semantics to buffer metadata (implies perfect-timestamp) 
         flags: readable 
         Boolean. Default: false 
    hard-resync   : Perform clipping and sample flushing upon discontinuity 
         flags: readable, writable 
         Boolean. Default: false 
    tolerance   : Consider discontinuity if timestamp jitter/imperfection exceeds tolerance (ns) 
         flags: readable, writable 
         Integer64. Range: 0 - 9223372036854775807 Default: 40000000 
    target    : Optimize for quality or bitrate 
         flags: readable, writable 
         Enum "GstLameMP3EncTarget" Default: 0, "quality" 
          (0): quality   - Quality 
          (1): bitrate   - Bitrate 
    bitrate    : Bitrate in kbit/sec (Only valid if target is bitrate, for CBR one of 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256 or 320) 
         flags: readable, writable 
         Integer. Range: 8 - 320 Default: 128 
    cbr     : Enforce constant bitrate encoding (Only valid if target is bitrate) 
         flags: readable, writable 
         Boolean. Default: false 
    quality    : VBR Quality from 0 to 10, 0 being the best (Only valid if target is quality) 
         flags: readable, writable 
         Float. Range:    0 -   9.999 Default:    4 
    encoding-engine-quality: Quality/speed of the encoding engine, this does not affect the bitrate! 
         flags: readable, writable 
         Enum "GstLameMP3EncEncodingEngineQuality" Default: 1, "standard" 
          (0): fast    - Fast 
          (1): standard   - Standard 
          (2): high    - High 
    mono    : Enforce mono encoding 
         flags: readable, writable 
         Boolean. Default: false 

Presets: 
    "Ubuntu" 

ответ

0

какой ОС вы работаете на ODROID (Android/Ubuntu?), Что дает gst-inspect-1.0 lamemp3enc .. есть библиотека путь .. вы можете его ldd:

ldd /usr/local/lib/gstreamer-1.0/libgstlame.so

linux-vdso.so.1 => (0x00007ffc7dbed000) 
libgstaudio-1.0.so.0 => /usr/local/lib/libgstaudio-1.0.so.0 (0x00007f4a97faa000) 
libgstbase-1.0.so.0 => /usr/local/lib/libgstbase-1.0.so.0 (0x00007f4a97d4c000) 
libgstreamer-1.0.so.0 => /usr/local/lib/libgstreamer-1.0.so.0 (0x00007f4a97a31000) 
libgobject-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007f4a977e0000) 
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f4a974d8000) 
libmp3lame.so.0 => /usr/lib/x86_64-linux-gnu/libmp3lame.so.0 (0x00007f4a9724a000) 
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f4a9702c000) 
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4a96c67000) 
libgsttag-1.0.so.0 => /usr/local/lib/libgsttag-1.0.so.0 (0x00007f4a96a2d000) 
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4a96727000) 
liborc-0.4.so.0 => /usr/local/lib/liborc-0.4.so.0 (0x00007f4a964a4000) 
libgmodule-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007f4a9629f000) 
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f4a96097000) 
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4a95e93000) 
libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f4a95c8a000) 
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f4a95a4c000) 
/lib64/ld-linux-x86-64.so.2 (0x0000558c95a32000) 
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f4a95833000) 

Проверьте, если у вас есть все .. LIBS вам нужно особенно libmp3lame.so ..

Вы всегда можете использовать инструмент APT-файл, чтобы проверить, какой пакет предоставляет эту LIB .. но его совершенно очевидно, что это его пакет (запустить как корень или Sudo):

apt-get install libmp3lame-dev 

Если вы не имеете его во время компиляции (я предполагаю, что вы собрали, как вы связаны linuxfromscratch ..) вам необходимо recomiple GST-плагины-уродливые после установки этой библиотеки. .

Затем проверьте последнюю часть на то, когда вы повторно configure на ugly (я бы предложил использовать вместо autogen.sh .. но я не знаю среду ..), который следует упомянуть, если вы будете иметь mp3 устроятся ..

UPDATE

Поэтому вам просто нужно установить переменную env GST_PLUGIN_PATH. Gstreamer просто не знали, где искать GStreamer mp3 плагин ..

вы можете экспортировать переменную ENV .. говорят в ~/.basrhc:

export GST_PLUGIN_PATH=/usr/lib/gstreamer-1.0/ 

, а затем так же труба будет работать отлично, это проще один (проверено, работает):

gst-launch-1.0 -e audiotestsrc ! audioconvert ! lamemp3enc ! filesink location=audio.mp3 

НТН

+0

Спасибо за ответ мне. Я запускаю Ubuntu. Я получил «Нет такого элемента или плагина« lamemp3enc », когда я командовал gst-inspect-1.0 lamemp3enc'. И файл libgstlame.so отсутствует в /usr/lib/gstreamer-1.0. То есть я должен установить libgstlame.так, или libmpelame.so. Не могли бы вы рассказать мне, что лучше всего установить? – Potato

+0

проверить наличие libmp3lame .. libgstlame.so вы собираетесь скомпилировать .. так что проверьте, есть ли у вас это, а затем перекомпилируйте уродливый .. и не искать там - его мое конкретное местоположение (/ usr/local/lib .. вы, вероятно, будете иметь его в /usr/lib/something/gstreamer-1.0/) – nayana

+0

Да, у меня есть /usr/lib/gstreamer-1.0. И нет libmp3lame и libgstlame.so. – Potato