Gstreamer: быстрая перемотка видеофайла - PullRequest
1 голос
/ 22 декабря 2011

Я пытаюсь перемотать видеофайл с параметром скорости «-1».Он перематывается на короткое время, а затем воспроизведение останавливается.Наконец игрок убит.Однако перемотка вперед для того же видеофайла работает нормально.Я проверил это со скоростью «2x» и «4x».Если я просто ищу в обратном направлении с определенной продолжительностью (скорость равна «1.0»), он идет к этой отметке времени и запускает воспроизведение, как и ожидалось.

Насколько я понимаю, событие Seek обрабатывается в элементе Demuxer конвейера., где:

  1. Сбрасывает текущие данные потока в очереди
  2. Создает новый сегмент с обновленными значениями из события поиска.
  3. Как только новый сегмент готовс новыми данными потока начинается воспроизведение.С этого момента воспроизведение будет запущено на основе новых параметров, установленных в новом сегменте.

Для обратного воспроизведения я не могу выяснить, где конвейер фактически блокируется.Я вижу, что элемент demuxer извлекает данные и помещает их в новый сегмент.Может кто-нибудь предложить или указать, где проблема может быть?

1 Ответ

3 голосов
/ 08 января 2012

Обратное воспроизведение может быть неправильно реализовано здесь.Пожалуйста, отправьте сообщение об ошибке, предоставьте как можно больше информации о формате (например, используя gst-discoverer) и, если возможно, ссылку на файл.

...