作者热门文章
- 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/
我正在使用以下管道播放传输流文件 (*.ts): gst-launch-0.10 playbin2 uri=file:///c:/bbb.ts 但我需要自己将其转换为管道。我不确定如何实现这一目标。
我尝试使用 gstreamermm 1.0 提取视频的最后一帧,并与示例 https://github.com/GNOME/gstreamermm/blob/master/examples/media
我正在尝试使用此站点上的 CLI 示例播放一些音频文件: http://pygstdocs.berlios.de/pygst-tutorial/playbin.html http://pygstdoc
我正在使用 OSSBuild 和 gstreamersharp 开发 C# WPF 应用程序。我正在使用 XOverlayAdapter 在我拥有 Windows 句柄的托管 WindowsForms
我是一名优秀的程序员,十分优秀!