Recherche avancée

Médias (1)

Mot : - Tags -/biomaping

Autres articles (100)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (10892)

  • Python stream H.264 data over socket

    9 janvier 2017, par Ezra Knobloch

    I am creating a H.264 encoded stream on my Raspberry using the tool ’raspivid’ and sending that stream to stdout.
    What i want is sending that stream to another computer and feed it to ffmpeg which in turn feeds it to MPlayer.

    When i do this using netcat and pipes it does work really good, i have a clean stream without any graphic bugs.

    I try to get the raspivid stdout over the subprocess module, see code below. Im more or less sure the problem lies somewhere there cause i did something similar a while back and it worked without many problems, and the only thing i did different now is using subprocess.

    My question is : does someone see what causes my problems ?

    Some Notes :

    • Using streamObj.get_data(pcktSize) did never work until now (MPlayer and ffmpeg cant open the stream)

    • process.stdout.readline() seems to be a bit faster than just read()

    • this code seems to be slower than just piping and netcat, how would i make it faster ? (while still using python)

    i need to write this sentence cause the code formatting below would be corrupted if i would not.

    import subprocess, socket, sys, time
    from thread import start_new_thread

    class streamObject:
       def __init__(self):
           global data
           data = ""

       def start_stream(self, rot, t, w, h, fps):
           global data

           process = subprocess.Popen(['/usr/bin/raspivid', '-rot', str(rot), '-t', str(t), '-w', str(w), '-h', str(h), '-fps', str(fps), '-o', '-'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)

           nodata_counter = 0

           while 1:
               if process.poll() is None:
                   data += process.stdout.readline()
                   #data += process.stdout.read(256)

                   sys.stdout.write("buffered %i bytes.     \r" % len(data))
                   sys.stdout.flush()
               elif nodata_counter < 200:
                   nodata_counter += 1

                   time.sleep(0.1)
               else:
                   break

       def get_alldata(self):
           global data

           return data

       def get_data(self, data_len):
           global data

           if len(data) > data_len:
               temp = data[0:data_len]
               data = data[data_len:len(data)]

               return temp
           else:
               return None

       def clear_cache(self):
           global data

           data = ""

       def poll(self):
           global data

           try:
               if len(data) != 0:
                   return None
               else:
                   return 0
           except:
               return 0

    def socket_connect(ip, port):
       s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
       s.connect((ip, port))

       return s

    def socket_listen(ip, port):
       s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
       s.bind((ip, port))
       s.listen(1)

       conn, addr = s.accept()

       return conn

    def socket_close(sock):
       sock.close()

    def send_stream(sock, streamObj, pcktSize):
       timeout = 0

       while 1:
           if streamObj.poll() is None:
               #data = streamObj.get_data(pcktSize)

               data = streamObj.get_alldata()
               streamObj.clear_cache()

               if data is not None:
                   sock.send(data)
           elif timeout < 200:
               timeout += 1

               time.sleep(0.1)
           else:
               break

    stream = streamObject()

    start_new_thread(stream.start_stream, (180, 0, 1280, 720, 20))

    sock = socket_connect("xxxx.xxxx.xxxx.xxxx", 7777)

    send_stream(sock, stream, 256)

    Here is a short video of the graphic bugs i encounter.

    I am doing this over a direct ethernet connection at this time.

  • how to make omxh264enc output filler data ?

    8 septembre 2020, par BlueWaterCrystal

    I require filler data from the encoder to artificially raise the bitrate to sustain constant bitrate.

    


    normally x264enc does this but omx264enc doesn't seem to. even though there seems be a value within its code PROP_FILLER_DATA

    


  • how to make omxh264enc output filler data ?

    8 septembre 2020, par BlueWaterCrystal

    I require filler data from the encoder to artificially raise the bitrate to sustain constant bitrate.

    


    normally x264enc does this but omx264enc doesn't seem to. even though there seems be a value within its code PROP_FILLER_DATA