GStreamer中Autovideosink仅显示首帧,后续视频冻结的问题求助
GStreamer中Autovideosink仅显示首帧,后续视频冻结的问题求助
大家好,我最近在写一个GStreamer的小示例程序,想用appsink和appsrc把两个管道串联起来——核心需求是从appsink提取H264帧,做一些自定义处理后,再把帧推给appsrc进行播放。
目前程序看起来快能正常工作了:它能打开窗口,也能显示第一帧,但之后视频就彻底冻结住了。我明明能看到appsink一直在给我发送样本,而且我也通过push-buffer信号把这些样本推给了appsrc,可就是没法播放后续的帧,实在搞不懂哪里出问题了。
我的两个管道代码是这样的:
第一个管道:从videotestsrc生成测试视频,转成H264后输出到appsink
videotestsrc pattern=1 is-live=true ! video/x-raw,format=I420,width=640,height=480 ! x264enc byte-stream=true ! h264parse config-interval=1 ! video/x-h264,stream-format=byte-stream ! appsink第二个管道:从appsrc读取数据,解码后用autovideosink播放
appsrc ! decodebin ! autovideosink
我传递缓冲区的C代码片段如下:
// 处理缓冲区从appsink到appsrc的逻辑 stat...
备注:内容来源于stack exchange,提问作者JonasVautherin
相关产品推荐
相关产品推荐

