gstreamer filesrc не работает с ошибкой «sink-actual-sink-d3dvideo», но gst-launch работает правильно в Windows - PullRequest
0 голосов
/ 21 января 2019

Я хочу прочитать файл и воспроизвести.очень просто.

* windows10, сообщество Visual Studio 2017.

в командной строке, это работает правильно.

gst-launch-1.0 filesrc location="C:/test.webm" ! decodebin ! autovideosink

, но мой код не работает, это.

int main(int argc, char *argv[]) {

  ..... declare variable

  /* Initialize GStreamer */
  gst_init (&argc, &argv);

  /* Create the elements */
  source = gst_element_factory_make ("filesrc", "source");
  decode = gst_element_factory_make("decodebin", "decode");
  sink = gst_element_factory_make ("autovideosink", "sink");
  pipeline = gst_pipeline_new ("test-pipeline");
  gst_bin_add_many (GST_BIN (pipeline), source, decode, sink, NULL);
  g_object_set (G_OBJECT(source), "location", "C:/test.webm", NULL);
  bus = gst_element_get_bus (pipeline);

  ... error processing
}

и моя ошибка в этом

Error received from element sink-actual-sink-d3dvideo: Output window was closed
Debugging information: ../sys/d3dvideosink/d3dhelpers.c(1911): d3d_render_buffer (): /GstPipeline:test-pipeline/GstAutoVideoSink:sink/GstD3DVideoSink:sink-actual-sink-d3dvideo

, пожалуйста, помогите мне, в чем моя проблема.

  • мой код почти такой же, как у officialучебник .Я только что изменил videotestsrc на filesrc, добавил декодер между источником и приемником, установил свойство для указания местоположения медиа-файла
...