- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试使用 gstreamermm 1.0 提取视频的最后一帧,并与示例 https://github.com/GNOME/gstreamermm/blob/master/examples/media_player_gtkmm/player_window.cc 密切合作。 ,但我只得到白色像素。
如何提取流的最后一个视频帧作为原始 rgba 或 bgra 数据?
void
MediaStream::setup ()
{
player = Gst::PlayBin::create ("player");
vsink = Gst::XImageSink::create ("vsink");
player -> set_property ("video-sink", vsink);
player -> signal_video_changed () .connect (sigc::mem_fun (*this, &MediaStream::on_video_changed));
}
void
MediaStream::on_video_changed ()
{
Glib::RefPtr <Gst::Pad> pad = player -> get_video_pad (0);
if (pad)
pad -> add_probe (Gst::PAD_PROBE_TYPE_BUFFER, sigc::mem_fun (*this, &MediaStream::on_video_pad_got_buffer));
}
Gst::PadProbeReturn
MediaStream::on_video_pad_got_buffer (const Glib::RefPtr <Gst::Pad> & pad, const Gst::PadProbeInfo & data)
{
const auto width = vsink -> get_width ();
const auto height = vsink -> get_height ();
std::vector <uint8_t> image (width * height * 4);
// Got no data
data .get_buffer () -> extract (0, image .data (), image .size ());
return Gst::PAD_PROBE_OK;
}
最佳答案
错过的 C++ 的 C 版本运行良好:
const auto sample = gst_base_sink_get_last_sample (vsink -> Gst::BaseSink::gobj ());
关于c++ - gstreamermm:如何提取 Gst::PlayBin 的最后一个视频帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35936782/
我用谷歌搜索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 驱动程
我是一名优秀的程序员,十分优秀!