gpt4 book ai didi

c - 我应该设置 appsrc caps 来修复 "internal data stream error"吗?

转载 作者:行者123 更新时间:2023-11-30 16:12:04 25 4
gpt4 key购买 nike

我正在尝试打开一个 mp4 视频,对其进行解码并将其发送到 appsink。然后从 appsrc 接收它并将其保存在 mp4 文件中。

我确信我设置的上限是错误的。

const gchar *video_caps =
"video/x-raw,width=1280,height=720,framerate=25/1";

管道的前半部分:

  string = g_strdup_printf ("filesrc location=\"%s\" ! decodebin name=dec ! queue ! videoconvert ! appsink caps=\"%s\" name=testsink",
in_filename, video_caps);

下半场:

string = g_strdup_printf ("appsrc name=testsource caps=\"%s\" !x264enc ! mp4mux! filesink location=\"%s\"",
video_caps,out_filename);

我应该设置什么上限才能使其正常工作?

我得到的错误:在接收器(appsrc 模块)中收到错误错误:内部数据流错误。

最佳答案

为了进行正确的上限协商,您必须特别提及 appsink 和 appsrc.caps 中的数据类型。必须根据之前的元素输出设置上限。在问题中,decodebin输出数据采用YUV I420格式。

如果数据在到达 appsrc 之前被调制或更改,您必须为 appsrc 设置正确的上限。

const gchar * appsink_video_caps = "video/x-raw,format=I420,width=1280,height=720,framerate=25/1";

const gchar * appsrc_video_caps = "video/x-raw,format=I420,width=1280,height=720,framerate=25/1";

关于c - 我应该设置 appsrc caps 来修复 "internal data stream error"吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58437747/

25 4 0