- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我按照本教程使用 gst-omx 编译了 gstreamer:http://www.onepitwopi.com/raspberry-pi/gstreamer-1-2-on-the-raspberry-pi/
一切都很顺利,最后当我运行 gst-inspect-1.0 | grep omx 我得到:
omx: omxmpeg2videodec: OpenMAX MPEG2 Video Decoder
omx: omxmpeg4videodec: OpenMAX MPEG4 Video Decoder
omx: omxh263dec: OpenMAX H.263 Video Decoder
omx: omxh264dec: OpenMAX H.264 Video Decoder
omx: omxtheoradec: OpenMAX Theora Video Decoder
omx: omxvp8dec: OpenMAX VP8 Video Decoder
omx: omxmjpegdec: OpenMAX MJPEG Video Decoder
omx: omxvc1dec: OpenMAX WMV Video Decoder
omx: omxh264enc: OpenMAX H.264 Video Encoder
omx: omxanalogaudiosink: OpenMAX Analog Audio Sink
omx: omxhdmiaudiosink: OpenMAX HDMI Audio Sink
一切看起来都很好,但是当我尝试将 gst-launch-1.0 与 omx 解码器一起使用时,我什么也没得到。
该管道运行良好(但非常慢,所以我在中间关闭了它):
pi@raspberrypi ~ $ gst-launch-1.0 filesrc location=./h264_720p_hp_5.1_6mbps_ac3_planet.mp4 ! qtdemux ! h264parse ! avdec_h264 ! eglglessink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Got context from element 'eglglessink0': gst.egl.EGLDisplay=context, display=(Gst EGLDisplay)NULL;
Redistribute latency...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
WARNING: from element /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(2791): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0:
There may be a timestamping problem, or this computer is too slow.
^Chandling interrupt.
Interrupt: Stopping pipeline ...
Execution ended after 0:00:07.915424268
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
然后我尝试使用 omx 进行相同的管道,我得到:
pi@raspberrypi ~ $ gst-launch-1.0 -v filesrc location=h264_720p_hp_5.1_6mbps_ac3_planet.mp4 ! qtdemux ! h264parse ! omxh264dec ! eglglessink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Got context from element 'eglglessink0': gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)5.1, profile=(string)high, codec_data=(buffer)01640033ffe1001867640033ac34e2805005ba10001974f004c4b408f18318a801008468eebce5531cc305d2628d13080214868783a1c0d04e12142c0ac0da02fe10042ad35e9e850b748c778a1410088b172105449ca3050e204448b20a4d8a081827090809848541dc4290a43164215a201900cae8340f81e86f03300b6017002ac05981d61a07802a8400a902087404700bc010506e036404b811805902e07203e0087ff85b, width=(int)1280, height=(int)720, framerate=(fraction)24000/1001, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)5.1, profile=(string)high, width=(int)1280, height=(int)720, framerate=(fraction)24000/1001, pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true
/GstPipeline:pipeline0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)5.1, profile=(string)high, width=(int)1280, height=(int)720, framerate=(fraction)24000/1001, pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true
/GstPipeline:pipeline0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, framerate=(fraction)24000/1001
/GstPipeline:pipeline0/GstEglGlesSink:eglglessink0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, framerate=(fraction)24000/1001
ERROR: from element /GstPipeline:pipeline0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0: Could not configure supporting library.
Additional debug info:
gstomxvideodec.c(1505): gst_omx_video_dec_loop (): /GstPipeline:pipeline0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0:
Unable to reconfigure output port
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
/GstPipeline:pipeline0/GstEglGlesSink:eglglessink0.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstQTDemux:qtdemux0.GstPad:video_0: caps = NULL
/GstPipeline:pipeline0/GstQTDemux:qtdemux0.GstPad:audio_0: caps = NULL
Freeing pipeline ...
我认为这是这个错误最重要的部分:
ERROR: from element /GstPipeline:pipeline0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0: Could not configure supporting library.
但找不到任何对此错误的引用...
尝试检查 gst-omx,但它没有任何检查例程。
有人能解释一下这件事吗?
非常感谢!=D
更新:
奇怪的是,如果我在没有 hdmi 电缆的情况下启动 rpi 并通过 ssh 执行管道,它就可以工作(但我没有看到任何图像,因为 hdmi 电缆已关闭)
pi@raspberrypi ~ $ gst-launch-1.0 -v filesrc location=h264_720p_hp_5.1_6mbps_ac3_planet.mp4 ! qtdemux ! h264parse ! omxh264dec ! eglglessink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Got context from element 'eglglessink0': gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, stream-format=(string)avc, alignment=(string)au, level=(string)5.1, profile=(string)high, codec_data=(buffer)01640033ffe1001867640033ac34e2805005ba10001974f004c4b408f18318a801008468eebce5531cc305d2628d13080214868783a1c0d04e12142c0ac0da02fe10042ad35e9e850b748c778a1410088b172105449ca3050e204448b20a4d8a081827090809848541dc4290a43164215a201900cae8340f81e86f03300b6017002ac05981d61a07802a8400a902087404700bc010506e036404b811805902e07203e0087ff85b, width=(int)1280, height=(int)720, framerate=(fraction)24000/1001, pixel-aspect-ratio=(fraction)1/1
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)5.1, profile=(string)high, width=(int)1280, height=(int)720, framerate=(fraction)24000/1001, pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true
/GstPipeline:pipeline0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)5.1, profile=(string)high, width=(int)1280, height=(int)720, framerate=(fraction)24000/1001, pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true
/GstPipeline:pipeline0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, framerate=(fraction)24000/1001
/GstPipeline:pipeline0/GstEglGlesSink:eglglessink0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, framerate=(fraction)24000/1001
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 0:01:52.821428472
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
这是否意味着问题出在eglglessink 中?
最佳答案
刚刚找到解决方案:
我忘记增加GPU的内存,所以我的720p视频解码没有足够的内存来运行。简单的解决方法就是添加
gpu_mem=128
到/boot/config.txt 并重新启动树莓派。毕竟,它与eglglessink有关;D
关于raspberry-pi - Gstreamer 与 gst-omx Raspberry Pi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23859472/
我用谷歌搜索gst-omx和gstopenmax,但我认为这两个插件的功能似乎是一样的。不明白gst-omx和gstopenmax是什么关系。根据他们的个人文档: gst-openmax 是一个 GS
Xcode 10.1 中出现 GStreamer gst.h 文件未找到错误。有没有人能够找到解决方案??? 如果我使用 Objective-C 作为 iOS 项目的主要语言,甚至会出现此错误。 最佳
我正在尝试使用 CMake 使用 gstreamer 构建一个 C++ 应用程序。在我的 CMakeLists.txt 文件中,gstreamer 包含在以下行中: find_package(PkgC
我已经安装 gst-rtsp-server我想尝试一个简单的代码。但是在编译时我收到以下错误: In function `main': test-launch01.c:(.text+0x64): un
在进行了大量的谷歌研究之后,我将这个问题发布到这个专家组中。我找到了许多相关链接,但对我的情况不起作用。 我正在从数据库中获取格式为 2016-01-12 00:00:00.0 的日期值。现在我想将此
我正在使用 gst 库播放多个音频文件,但遇到问题: Error: Internal data flow error 这是我的代码(没有其他分路器和接收器初始化): GstElement *elm1,
我正在尝试在 php 中实现 GST 验证。 if(!preg_match("/^([0-5]){2}([a-zA-Z]){5}([0-9]){4}([a-zA-Z]){1}([a-zA-Z0-9])
我有这个使用 gst-plugin-1.0 的现有程序,它通过了这个:-e udpsrc port=3003 buffer-size=200000 ! h264parse ! queue ! http
我已经使用filesink创建了一个原始视频文件,我可以使用以下命令使用vlc播放该文件 vlc --demux rawvideo --rawvid-fps 24 --rawvid-width 19
我想在 javascript 或 jquery 中进行 GST 验证 仅限于印度。 印度GST的结构如下 GST Number will be of 15 digits having below va
我是一个运行 cent-os linux 的非根用户,我必须在我的远程机器上安装 opencv...所以我从源文件安装它...即分三步:1../configure 2.make 3.make inst
我陷入了困境。我正在学习以下教程(特别是 6.4.2) http://majorsilence.com/pygtk_audio_and_video_playback_gstreamer 我正在运行 P
我想在 gstreamer 中生成一个流,如果可能的话,我更愿意从 python 中生成。这指向使用 gst-python,但我没有看到一个明确的方法来做到这一点。看起来创建一个新流需要制作一个 gs
Ubuntu 14.04Gstreamer 0.10代码 SDK:Qt。 我对 Gstreamer 很陌生。当我在我的终端上使用 gst-launch 工具时,我可以成功地看到连接到我的工作站的摄像头
我已经在 Windows 7 PC 上安装了 GStreamer SDK (x64) 和 GStreamer SDK(开发文件)(x64)。这是一个完整的安装——所有功能都已启用。当我运行 gst-i
我已安装 gstreamer1.0-plugins-base使用命令: $ sudo apt-get install gstreamer1.0-plugins-base 但是当我编译我的代码时,它仍然
我已成功通过Windows上的UDP流传输文件(音频/视频),并在另一台具有VLC(this was covered on Stackoverflow before)的计算机上观看了该文件: gst-
使用以下工作正常 gst-launch-0.10 filesrc location=temp.wav ! wavparse ! audioconvert ! alsasink device=hw:0
我需要两个 gst-launch-1.0 命令行 1) 第一个是简单的播放视频 (.mp4) 而不使用任何硬件加速。 2) 第二个是使用硬件加速播放视频 (.mp4),我使用的是带有 i965 驱动程
我需要两个 gst-launch-1.0 命令行 1) 第一个是简单的播放视频 (.mp4) 而不使用任何硬件加速。 2) 第二个是使用硬件加速播放视频 (.mp4),我使用的是带有 i965 驱动程
我是一名优秀的程序员,十分优秀!