Recherche avancée

Médias (1)

Mot : - Tags -/artwork

Autres articles (104)

  • List of compatible distributions

    26 avril 2011, par

    The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)

  • D’autres logiciels intéressants

    12 avril 2011, par

    On ne revendique pas d’être les seuls à faire ce que l’on fait ... et on ne revendique surtout pas d’être les meilleurs non plus ... Ce que l’on fait, on essaie juste de le faire bien, et de mieux en mieux...
    La liste suivante correspond à des logiciels qui tendent peu ou prou à faire comme MediaSPIP ou que MediaSPIP tente peu ou prou à faire pareil, peu importe ...
    On ne les connais pas, on ne les a pas essayé, mais vous pouvez peut être y jeter un coup d’oeil.
    Videopress
    Site Internet : (...)

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

Sur d’autres sites (6973)

  • Add buffering to real time input stream with c++ ffmpeg

    7 octobre 2018, par Joel

    I am writing a c++ program in which I am handling a real time udp video stream with the ffmpeg library.

    The video input fps is 25 frames per second in avarage. The gap between two frames can be 10 , 20, 40 milliseconds, but sometimes it can be around 80 milliseconds.
    In those times, when the gap is around 80 milliseconds, the video seems choppy or stuck,

    When I open the same stream with the ffplay player(using the ffplay.exe), using a simple
    "ffplay.exe udp ://ip:port" command, the video has a little delay (around 50 millisends) with respect to the origin stream, but it runs much more smoothly.

    Can I set a buffering time or any minimal delay so that the delay between the frames will be much more steady, in my c++ program ?
    If so, how can I do this ?

    Thanks,
    Joel

  • How to server video from FFMPEG in Python/Flask ?

    13 mai 2020, par Jelling

    How does one stream the bytes returned by FFMPEG out via HTTP using Flask ? I have googled extensively and just cannot seem to find a working example.

    



    Here's how I'm loading my video file using ffmpeg-python ; this works.

    



    foo, _ = (
    ffmpeg
    .input('./example.mp4')
    .output('pipe:', format='rawvideo', pix_fmt='rgb24')
    # .output('pipe:', vframes=1, format='image2', vcodec='mjpeg')
    .run(capture_stdout=True) 
)


    



    And my best guess at outputting the video via HTTP :

    



    @app.route('/stream')
def stream():
    def gen():
      # do stuff but what?
    return Response(gen(), status=200,
                    mimetype='video/webm',
                    headers={'Access-Control-Allow-Origin': '*',
                                "Content-Type": "video/webm",
                                })


    


  • Stopping rq worker doesn't stop underlying ffmpeg process

    23 mars 2020, par sqr

    I am fairly new to python and rq, and have come to a point I can’t solve by myself.

    I am using ffmpeg-python to encode livestreams, this is distributed in rq workers and displayed on a web app using flask, but since the livestreams can go on forever, I need some way to stop this process while it is still in execution. Opening the terminal where the rq worker is executing the task and pressing ’q’ (ffmpeg shortcut to quit) works, and marks the job as OK, but I need to be able to do this from my web app.

    I have tried getting the worker ID and sending it a SIGKILL, this stops the worker but the task continues running, which is something I don’t understand at all. It’s as if the actual ffmpeg process was being executed somewhere else and stopping the worker didn’t stop ffmpeg. Note that I am not using ffmpeg.run_async, I am using ffmpeg.run which as far as my limited knowledge goes, should not be executed asynchronously. While the streaming is being encoded the worker is marked as busy and has the Job ID properly assigned, so I really don’t understand why, when the worker is killed, the underlying process is still in execution.

    If instead of sending a SIGKILL I send a SIGTERM, the worker says it’s waiting for a warm exit and is never closed, as the ffmpeg process is still doing it’s thing.

    One of my ideas was trying to send a ’q’ keystroke to the worker (which I have no idea how to do even though i’ve been doing some research) or trying to switch from rq to celery, that supposedly supports the cancellation of tasks that are being executed.

    This is my routes file

    @app.route('/streamings', methods=['GET', 'POST'])
    @login_required
    def streamings():
    ...
       if form2.submit_stop.data and form2.validate():
           conn1 = Redis.from_url('redis://')
           queue = rq.Queue('tasks-q', connection=Redis.from_url('redis://'))
           workers = rq.Worker.all(queue=queue)

           for worker in workers:
               peine = worker.get_current_job_id()
               if peine == form2.fld1.data:
                   os.kill(worker.pid, signal.SIGKILL)

    and this is my tasks file

    def restream(origin, server, stream_key):
       stream_server = generate_url(server, stream_key)
       try:
           stream_map = None
           stream1 = ffmpeg.input(get_manifest(origin), re=None)
           stream2 = ffmpeg.input('mosca_66.png')
           stream_ol = ffmpeg.overlay(stream1, stream2, x='main_w-overlay_w-50', y='50')
           a1 = stream1.audio
           stream = ffmpeg.output(stream_ol, a1, stream_server, format='flv', vcodec='libx264', acodec='aac', preset='medium', g='120', crf='23', maxrate='4M', bufsize='5M', channel_layout='stereo')
           print(stream.get_args())
           ffmpeg.run(stream)
       except:
           set_complete()

    Any insight on possible solutions would be greatly appreciated.

    Thanks