Создание сегментов в видео - PullRequest
6 голосов
/ 15 сентября 2011

Я использую Python 2.7, PyGTK 2.24 и PyGST (Gstreamer).

Чтобы обеспечить плавное воспроизведение из одного клипа в другой (без моргания), я объединил все нужные мне клипы в один большийвидео.Это позволяет мне искать именно то место, которое мне нужно в коде.Один из клипов похож на «вставку», которая должна зацикливаться, когда один из других клипов не воспроизводится.

Однако, чтобы сделать мой код более простым и более упорядоченным, я хочу использовать сегменты для определенияразличные клипы в большом видео.Затем в конце каждого сегмента (я знаю, что есть событие окончания сегмента), я ищу заполненный клип.Когда мне нужен еще один клип, я просто стремлюсь к этому сегменту.

У меня вопрос, как именно я могу создать эти сегменты?Я предполагаю, что это будет event_new_new_segment () , но я не уверен.Могу ли я создать несколько клипов для поиска с помощью этой функции?Есть ли другой, который я должен использовать.Есть ли какие-либо ошибки в этом методе поиска в моем видео, о которых я должен знать?

Во-вторых, как мне искать этот сегмент?

Спасибо!

1 Ответ

1 голос
/ 29 сентября 2011

Похоже, что только GstElement может генерировать NEWSEGMENT события, вы не можете просто прикрепить его к существующему элементу.Самое близкое, что вы могли бы сделать, если не используете Python, это создать одиночный выстрел или периодический GstClockID или использовать gst_clock_id_wait_async до времени часовудар.Но проблема в том, что GstClockID это не обернутый в PyGst.

Я думаю, что на самом деле я работаю над некоторой подобной проблемой.Какое-то решение, которое я сейчас использую, - это склеивание видеопотоков в режиме реального времени с помощью gnonlin .Хорошая сторона: вроде бы работает, еще не успел его полностью протестировать.Плохая сторона: плохо документирована и содержит ошибки. Эти источники из проекта flumotion (и комментарии внутри!) Были очень, очень полезны для меня, чтобы понять, как заставить все это работать.

...