Cancelled

Gstreamer Python - sync-message::element dont work

I want insert any video input and make segmentation to hls .ts with python and gstreamer.

I'm trying with python code below, but i can not receiving the sync-message::element, the video file is generated but dont call on_element function with structure name GstMultiFileSink to divide de video, it's generate only one video file. which leads me To believe that something is missing in my gstreamer command.

#! /usr/bin/python

import sys, time

import gi

gi.require_version('Gst','1.0')

gi.require_version('GstVideo', '1.0')

from [url removed, login to view] import GObject, Gst, GstVideo

[url removed, login to view](None)

class HLS:

def __init__(self, output_folder, seg_duration=10):

[url removed, login to view] = 'test'

self.segment_count = 0

self.last_stream_time = 0

self.seg_duration = seg_duration

[url removed, login to view] = None

[url removed, login to view] = None

[url removed, login to view] = False

self.output_folder = output_folder

def on_eos(self, bus, msg):

print 'EOS reached'

self.pipeline.set_state([url removed, login to view])

[url removed, login to view] = True

def on_error(self, bus, msg):

error = msg.parse_error()

print '*** ERROR *** :', error[1]

self.pipeline.set_state([url removed, login to view])

def on_element(self, bus, msg):

structure = msg.get_structure()

print structure.get_name()

if structure.get_name() != "GstMultiFileSink":

return

#filename = structure['filename']

#duration = [url removed, login to view]['stream-time'] - self.last_stream_time

self.last_stream_time = structure['stream-time']

self.request_new_segment()

def create_pipeline(self):

print "Creating pipeline with:\nsrc: " + [url removed, login to view]

#it's only a test

[url removed, login to view] = Gst.parse_launch("urisourcebin uri=[url removed, login to view]@156521/[url removed, login to view] ! multifilesink location="+self.output_folder+"/%[url removed, login to view] sync=true next-file=key-unit-event post-messages=true")

[url removed, login to view] = self.pipeline.get_bus()

self.bus.enable_sync_message_emission()

self.bus.add_signal_watch()

[url removed, login to view]('sync-message::eos', self.on_eos)

[url removed, login to view]('sync-message::error', self.on_error)

[url removed, login to view]('sync-message::element', self.on_element)

self.pipeline.set_state([url removed, login to view])

self.request_new_segment()

self.pipeline.set_state([url removed, login to view])

def request_new_segment(self):

self.segment_count += 1

target_time = self.last_stream_time + (self.seg_duration * [url removed, login to view])

print "Requesting new segment [" + str(self.segment_count) + "] at: " + str(target_time)

self.pipeline.send_event (GstVideo.video_event_new_upstream_force_key_unit(running_time=target_time, all_headers=True, count=self.segment_count))

test = HLS('/root/teste')

test.create_pipeline()

[url removed, login to view](50)

Skills: Python, Video Broadcasting

See more: python gstreamer install, gstreamer python windows, gstreamer 1.0 python, python gst, python gstreamer video example, python gstreamer 1.0 tutorial, gstreamer python opencv, python import gst, rollovers dont work right, joomla login dont work, mysite dont work flash10, ijoomla magazine dont work

About the Employer:
( 0 reviews ) Brazil

Project ID: #14873795

7 freelancers are bidding on average R$817 for this job

R$75 BRL in 1 day
(17 Reviews)
5.0
R$4444 BRL in 1 day
(2 Reviews)
2.8
R$75 BRL in 1 day
(2 Reviews)
2.3
R$90 BRL in 1 day
(1 Review)
1.2
R$75 BRL in 1 day
(3 Reviews)
0.9
prestoexperts44

Our team of experts will get this work done as per requirement. Relevant Skills and Experience Python, C++, Java, Matlab Proposed Milestones R$888 BRL - The work can be done as per requirement after the final discuss More

R$888 BRL in 10 days
(1 Review)
0.8
R$75 BRL in 1 day
(0 Reviews)
0.0