Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在gstreamer C编程中动态获取和设置字幕文本_C_Events_Gstreamer - Fatal编程技术网

如何在gstreamer C编程中动态获取和设置字幕文本

如何在gstreamer C编程中动态获取和设置字幕文本,c,events,gstreamer,C,Events,Gstreamer,我想知道在视频队列中添加字幕行时是否可以处理事件。这是我的管道,我在C编程中也有同样的管道: gst-launch filesrc location=./video.ogv ! oggdemux name=demux \ demux. ! queue ! decodebin ! subtitleoverlay name=overlay ! ffmpegcolorspace ! autovideosink \ demux. ! queue ! vorbisdec ! autoaudiosink \

我想知道在视频队列中添加字幕行时是否可以处理事件。这是我的管道,我在C编程中也有同样的管道:

gst-launch filesrc location=./video.ogv ! oggdemux name=demux \
demux. ! queue ! decodebin ! subtitleoverlay name=overlay ! ffmpegcolorspace ! autovideosink \
demux. ! queue ! vorbisdec ! autoaudiosink \
filesrc location=./video.srt ! queue ! subparse ! overlay.
谢谢大家。

您可以这样在队列的源板上放置一个缓冲区:

gst_pad_add_probe (source, GST_PAD_PROBE_TYPE_BUFFER, your_callback, NULL, NULL);

每次队列从中提取内容时,都会触发您的回调。不过,我相信你最好将探测器放在subparse的源键盘上,因为当按下字幕行以显示时,你肯定会调用你的回调,这就是我认为你真正想要的:)

是的,就是这样谢谢你。但这已不再是当前的趋势,所以也许有一天我会尝试一下。我想自动翻译字幕!在这种情况下,最好的办法是编写一个“texttranslate”元素,我认为它可以链接到subparse插件之后。