ошибка визуализации музыки с помощью gstreamer - PullRequest
1 голос
/ 26 февраля 2010

привет, я пытаюсь визуализировать музыкальный файл в gstreamer, используя следующую команду:

gst-launch filesrc location=file.mp3 ! decodebin ! audioconvert ! 
tee name=myT myT. ! queue ! autoaudiosink myT. ! queue ! goom ! 
colorspace ! autovideosink

Но я получаю эту ошибку: «Возможно, проблема с меткой времени или этот компьютер работает слишком медленно».

Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock
WARNING: from element /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstDshowVideoSink:autovideosink0-actual-sink-dshowvideo: A lot of buffers are being dropped.
Additional debug info:
..\Source\gstreamer\libs\gst\base\gstbasesink.c(2572): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0/GstDshowVideoSink:autovideosink0-actual-sink-dshowvideo:
There may be a timestamping problem, or this computer is too slow.
ERROR: from element /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0

Предполагая, что это как-то связано с потоком, я попробовал следующую команду:

gst-launch filesrc location=file.mp3 ! decodebin ! audioconvert ! tee name=myT 
{ ! queue ! autoaudiosink } { tee. ! queue ! goom ! colorspace ! autovideosink }

Но тогда выдается следующая ссылка:

** (gst-launch-0.10:5308): WARNING **: Trying to connect elements that don't share a common ancestor: tee and queue1
0:00:00.125000000  5308   003342F0 ERROR           GST_PIPELINE grammar.tab.c:656:gst_parse_perform_link: could not link tee to queue1
WARNING: erroneous pipeline: could not link tee to queue1

Может кто-нибудь сказать, что не так? Спасибо

Ответы [ 2 ]

1 голос
/ 26 февраля 2010

Я не могу дать вам точный ответ, потому что у меня не установлены окна.

Для отладки используйте ваш первый конвейер (в Linux работает). Используйте параметр -v с gst-launch и поместите идентификатор элемента непосредственно перед autovideosink. Это напечатает информацию о буфере, которая проходит через идентичность элемента, ищет что-то странное.

Также вы можете попробовать использовать directdrawsink вместо autovideosink. Еще один тест, который я сделаю, - это сгенерировать аудио с помощью audiotestsrc.

Помните, что если вы найдете ошибку, вы можете открыть отчет об ошибке в gnome bugzilla, чтобы разработчики GStreamer знали, что есть проблема. Даже вы могли бы это исправить сами и прислать патч.

0 голосов
/ 26 июля 2011

Для There may be a timestamping problem, or this computer is too slow. Ошибка Попробуйте sync=false как

`gst-launch filesrc location=file.mp3 ! decodebin ! audioconvert ! tee name=myT myT. ! queue ! autoaudiosink myT. ! queue ! goom ! colorspace ! autovideosink sync=false`

или вам, возможно, придется попробовать оба конца Тройника, как

`gst-launch filesrc location=file.mp3 ! decodebin ! audioconvert ! tee name=myT myT. ! queue ! autoaudiosink sync=false myT. ! queue ! goom ! colorspace ! autovideosink sync=false`

Я также заметил, что если вы замените autovideosink на xvimagesink или ximagesink, проблема с отметкой времени, по-видимому, будет решена.

...