如何解决GStreamer的三通+ x264enc第一帧持续时间是不正确的
我有直播流源,并且我要开始记录从任意时间的流。我的设置是这样的:
videotestsrc ! tee name=rawVideoSplitter ! queue ! ximagesink
和我通过编码器箱链接到“三通”开始记录:
recorderBranch = gst_parse_bin_from_description("queue name=recorderQueue flush-on-eos=1 leaky=1 ! "
"timeoverlay shading-value=255 shaded-background=true font-desc=\"Sans,10\" time-mode=0 ! "
"videorate ! video/x-raw,framerate=30/1 ! videoconvert ! "
"x264enc tune=zerolatency ! mp4mux ! filesink name=fileSink location=test.mp4",true,&error);
if (error) {
recorderBranch = NULL;
return;
}
gst_bin_add(GST_BIN(pipeline),recorderBranch);
gst_element_link(rawVideoSplitter,recorderBranch);
gst_element_set_state(GST_ELEMENT(recorderBranch),GST_STATE_PLAYING);
一切正常,除了记录文件长度较长的实际记录时间。在该文件中的第一帧具有 “的编码器开始时间 - 的管道开始时间” 的长度。例如,如果我在开始第二10至20秒来记录,在重放我得到固定10秒,然后开始文件的第一帧到正常回放。
我该如何解决这个问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。