Gstreamer 无元素错误 (lamemp3enc)
Gstreamer no element error (lamemp3enc)
我正在尝试在 odroid C1+ 上使用 gstreamer。
我从这里安装了 gstreamer、base、good、ugly、bad、libav
https://gstreamer.freedesktop.org/modules/
关注这里
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 <sebastian.droege@collabora.co.uk>
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"
你 OS 是什么 运行 在 odroid (Android/Ubuntu?) 上 gst-inspect-1.0 lamemp3enc
? =18=]
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)
检查你是否拥有所有库..你特别需要 libmp3lame.so
..
你总是可以使用 apt-file 工具来检查哪个包提供了这个库..但是很明显它是这个包(运行 作为 root 或 sudo):
apt-get install libmp3lame-dev
如果你在编译时没有它(我猜你是在链接 linuxfromscratch 时编译的..)你需要在安装这个库后重新编译 gst-plugins-ugly..
然后在 ugly
重新 运行 configure
时检查最后一部分(我建议改用 autogen.sh.. 但我不知道你的环境。 .) 如果你要构建 mp3 应该提到..
更新
所以你只需要设置环境变量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
HTH
我正在尝试在 odroid C1+ 上使用 gstreamer。 我从这里安装了 gstreamer、base、good、ugly、bad、libav https://gstreamer.freedesktop.org/modules/
关注这里 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 <sebastian.droege@collabora.co.uk>
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"
你 OS 是什么 运行 在 odroid (Android/Ubuntu?) 上 gst-inspect-1.0 lamemp3enc
? =18=]
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)
检查你是否拥有所有库..你特别需要 libmp3lame.so
..
你总是可以使用 apt-file 工具来检查哪个包提供了这个库..但是很明显它是这个包(运行 作为 root 或 sudo):
apt-get install libmp3lame-dev
如果你在编译时没有它(我猜你是在链接 linuxfromscratch 时编译的..)你需要在安装这个库后重新编译 gst-plugins-ugly..
然后在 ugly
重新 运行 configure
时检查最后一部分(我建议改用 autogen.sh.. 但我不知道你的环境。 .) 如果你要构建 mp3 应该提到..
更新
所以你只需要设置环境变量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
HTH