标签: gstreamer

gstreamer rtsp h264 depayloader中字节流和分组流之间的区别是什么

在gstreamer rtp h264 depayloader中,检查输入流是字节流还是打包流.

谁能告诉我这两种格式有什么区别?

此外,对于字节流,codec_data不会写入大写字母.知道为什么会这样吗?

c gstreamer h.264

9
推荐指数
1
解决办法
5056
查看次数

Haskell GStreamer三通元素(1-N)麻烦

我遇到的问题与以下代码有关:

module Main(main) where

import qualified Media.Streaming.GStreamer as GS
import Data.Maybe
import System.IO
import System.Exit
import System.Glib.MainLoop as Glib
import System.Glib.Signals as Glib
import System.Glib.Properties as Glib


makeElement:: String ? String ? IO GS.Element
makeElement elementType elementName = do
    element ? GS.elementFactoryMake elementType (Just elementName)
    case element of
        Just element' ? return element'
        Nothing ? do
            hPutStrLn stdout ("Cannot create element!")
            hFlush stdout
            exitFailure

player =  do
    GS.init

    pipeline ? GS.pipelineNew "video-stream"

    source  ? makeElement "v4l2src" "video-source"
    color   ? makeElement …
Run Code Online (Sandbox Code Playgroud)

haskell gstreamer

9
推荐指数
1
解决办法
1345
查看次数

从Android上的IP摄像头接收视频流

我有一台IP摄像机,它是MJPEG格式的流媒体视频.现在我的目标是接收它并在我自己的自定义Android应用程序中显示它.为此我在android平台上有三个编程选择:

  1. 使用内置的Anrdroid MediaPlayer类
  2. 在本机C中使用FFMPEG库并通过JNI访问它
  3. 在android上使用GStreamer端口接收流

那么请建议更好的解决方案?

我没有使用FFMPEG或GStreamer的经验.那么这样做的可行性是什么?

android ffmpeg gstreamer ip-camera android-mediaplayer

9
推荐指数
1
解决办法
5784
查看次数

如何使用Python和Gstreamer创建视频缩略图

我想使用Gstreamer和Python为MPEG-4 AVC视频创建缩略图.实质上:

  1. 打开视频文件
  2. 寻找某个时间点(例如5秒)
  3. 那时抓住框架
  4. 将帧保存为.jpg文件

我一直在看这个类似的问题,但我无法弄清楚如何在没有用户输入的情况下自动进行搜索和帧捕获.

总而言之,我如何按照上述步骤使用Gstreamer和Python捕获视频缩略图?

python video gstreamer

9
推荐指数
1
解决办法
4713
查看次数

GStreamer + V4L2loopback兼容Chrome兼容网络摄像头

我正在尝试使用v4l2loopback在Chrome中创建虚拟相机,其中传入的视频是通过RTP输入的H264.

我在Chrome中识别GStreamer测试视频方面取得了一些成功MediaStreamTrack.getSources:

$ sudo modprobe v4l2loopback
$ gst-launch-1.0 videotestsrc ! v4l2sink device=/dev/video0
Run Code Online (Sandbox Code Playgroud)

这很有效,Chrome会显示视频测试源.

但是,当我使用传入的h264/RTP源时,设备不会显示MediaStreamTrack.getSources.例如:

gst-launch-1.0 -v tcpclientsrc host=<IPADDRESS> port=5000  ! gdpdepay !  rtph264depay ! avdec_h264 ! videoconvert ! v4l2sink device=/dev/video0
Run Code Online (Sandbox Code Playgroud)

这是什么原因?解决方案是什么?

我原本以为这可能与视频格式有关,也许需要通过v4l2loopback设置正确的上限.

google-chrome gstreamer v4l2loopback

9
推荐指数
1
解决办法
4532
查看次数

在OpenCV中使用自定义相机(通过GStreamer)

我正在使用Nitrogen6x板和ov5640相机(mipi).

相机没有使用标准v4l/v4l,但我们可以使用GStreamer为其驱动程序(mfw_v4l)流式传输视频:

gst-launch mfw_v4lsrc ! autovideosink
Run Code Online (Sandbox Code Playgroud)

我想通过GStreamer(OpenCV内部的GStreamer)调用OpenCV中的相机.我在这里问了一个关于在OpenCV中调用GStreamer的问题,这是后续的.

如果我启用了GStreamer支持,则会在源代码中检查它,但OpenCV会尝试使用标准V4L/V4L2作为GStreamer,我想要更改它.有关调用GStreamer的部分位于cap_gstreamer.cpp中:

    CvCapture* cvCreateCapture_GStreamer(int type, const char* filename )
{
    CvCapture_GStreamer* capture = new CvCapture_GStreamer;

    if( capture->open( type, filename ))
        return capture;

    delete capture;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我想这是我应该以某种方式指向相机驱动程序的部分.("type"这里可能是一个与驱动程序相关的数字(在precomp.hpp中定义),但是什么是"文件名"?)

有关如何通过GStreamer访问相机的任何建议都会有所帮助和赞赏.谢谢!

c c++ camera opencv gstreamer

9
推荐指数
1
解决办法
2万
查看次数

GStreamer上"黑名单"的含义是什么?

我正在尝试交叉编译GStreamer.版本是1.2.3.主机PC的操作系统是x86 linux,而目标系统的操作系统是MIPSEL linux操作系统.

我成功编译了目标设备的gstreamer和插件.并且gst-launch-1.0可以执行.所以我尝试使用基本插件libgstvideotestsrc.但它没有用.所以我运行```gst-inspect-1.0'来检查插件,然后我发现结果如下.

# gst-inspect-1.0 -b
Blacklisted files:
  libgstinterlace.so
  libgstfbdevsink.so
  libgstgeometrictransform.so
  libgstmultifile.so
  libgstencodebin.so
  libgstfestival.so
  libgstlevel.so
  libgstdvdspu.so
  libgstauparse.so
  libgsty4menc.so
  libgstvideofilter.so
  libgstvideoscale.so
  libgstaccurip.so
  libgstvideoconvert.so
  libgstaudioparsers.so
  libgsttcp.so
  libgstvolume.so
  libgstcoreelements.so
  libgstmpegtsdemux.so
  libgstid3tag.so
  libgstadpcmdec.so
  libgstmfc.so
  libgstrtpmanager.so
  libgstaudiotestsrc.so
  libgstdeinterlace.so
  libgstdebug.so
  libgstplayback.so
  libgstspeed.so
  libgstasfmux.so
  libgsticydemux.so
  libgstmpegpsdemux.so
  libgstalaw.so
  libgstwavparse.so
  libgstpnm.so
  libgstnavigationtest.so
  libgstcamerabin2.so
  libgstsdpelem.so
  libgstisomp4.so
  libgstliveadder.so
  libgstmpegtsmux.so
  libgstautodetect.so
  libgstmultipart.so
  libgstvideofiltersbad.so
  libgstaudioresample.so
  libgstautoconvert.so
  libgstdvbsuboverlay.so
  libgstid3demux.so
  libgstvideobox.so
  libgstgio.so
  libgstdtmf.so
  libgstremovesilence.so
  libgstreplaygain.so
  libgstaudioconvert.so
  libgstcutter.so
  libgstgaudieffects.so
  libgstdvb.so
  libgstaudiovisualizers.so
  libgstudp.so
  libgstimagefreeze.so
  libgstadder.so
  libgstpcapparse.so
  libgstmxf.so
  libgstshapewipe.so
  libgstgdp.so
  libgstwavenc.so
  libgstshm.so
  libgstflv.so
  libgstfreeverb.so
  libgstoss4audio.so …
Run Code Online (Sandbox Code Playgroud)

linux plugins mips cross-compiling gstreamer

9
推荐指数
3
解决办法
7327
查看次数

如何在Debian 8 Jessie上安装gstreamer0.10-ffmpeg(无安装候选者)

在干净的Debian 8安装上,我必须安装一些gstreamer-plugins.虽然大多数已经安装或可以通过apt-get轻松安装,但gstreamer0.10-ffmpeg无法安装:

sudo apt-get install gstreamer0.10-ffmpeg
Run Code Online (Sandbox Code Playgroud)

抛出以下警告:

包gstreamer0.10-ffmpeg不可用,但由另一个包引用.这可能意味着包丢失,已被淘汰或仅可从其他来源获得E:包'gstreamer0.10-ffmpeg'没有安装候选

我怎么能安装包呢?

debian apt ffmpeg gstreamer

9
推荐指数
1
解决办法
7490
查看次数

如何将实时视频帧从ffmpeg传输到PIL?

我需要使用ffmpeg/avconv将jpg帧传输到python PIL(Pillow)Image对象,使用gst作为中介*.我一直在寻找这个答案而没有太多运气.我想我很接近 - 但我被困住了.使用Python 2.7

我从python启动的理想管道如下所示:

  1. ffmpeg/avconv(作为h264视频)
  2. 管道 - >
  3. gst-streamer(帧分为jpg)
  4. 管道 - >
  5. Pil图像对象

我将控制的前几个步骤作为单个命令,将.jpgs写入磁盘的速度与硬件允许的速度一样快.

该命令看起来像这样:

command = [
        "ffmpeg",
        "-f video4linux2",
        "-r 30",
        "-video_size 1280x720",
        "-pixel_format 'uyvy422'",
        "-i /dev/video0",
        "-vf fps=30",
        "-f H264",
        "-vcodec libx264",
        "-preset ultrafast",
        "pipe:1 -",
        "|", # Pipe to GST
        "gst-launch-1.0 fdsrc !",
        "video/x-h264,framerate=30/1,stream-format=byte-stream !",
        "decodebin ! videorate ! video/x-raw,framerate=30/1 !",
        "videoconvert !",
        "jpegenc quality=55 !",
        "multifilesink location=" + Utils.live_sync_path + "live_%04d.jpg"
      ]
Run Code Online (Sandbox Code Playgroud)

如果使用popen或os.system运行,这将成功将帧写入磁盘.

但是我没有将帧写入磁盘,而是想要捕获我的子进程管道中的输出,并在写入时将帧读取到类似文件的缓冲区中,然后由PIL读取.

像这样的东西:

    import subprocess as …
Run Code Online (Sandbox Code Playgroud)

python linux ffmpeg gstreamer raspberry-pi

9
推荐指数
1
解决办法
3899
查看次数

截至2018年,FFmpeg vs Libav vs libVLC vs Gstreamer

我正在尝试实时进行一些视频处理.我开始尝试FFmpeg,但我看到了这个问题:

为什么我会选择Libav而不是FFmpeg,还是会有差异?

哪个进一步链接到这个问题:

ffmpeg,libav和avconv之间有什么区别和相似之处?

这篇博文:

http://blog.pkh.me/p/13-the-ffmpeg-libav-situation.html

读完之后我才知道Libav是FFmpeg的一个分支,正在分开开发.我需要使用Libav或FFmpeg或libVLC或Gstreamer开发C++应用程序.我认为在回答这些问题后会有很多变化.对这些工具进行一些基准测试会很棒.

你们对视频和音频处理的任何基准测试结果有什么偏好?我需要快速处理帧并将视频流式传输到多个C++应用程序,这将是解决此问题的最佳方法,以及最佳选择工具是什么?

因此,截至2018年,这些工具在视频处理方面的现状如何.知道熟悉这些工具的视频处理人员的一些结果会很高兴.

c++ ffmpeg gstreamer libvlc

9
推荐指数
0
解决办法
4771
查看次数