Recherche avancée

Médias (3)

Mot : - Tags -/image

Autres articles (91)

  • Keeping control of your media in your hands

    13 avril 2011, par

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

  • Mise à jour de la version 0.1 vers 0.2

    24 juin 2013, par

    Explications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
    Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

Sur d’autres sites (11409)

  • arm : vp9 : Add NEON optimizations of VP9 MC functions

    14 novembre 2016, par Martin Storsjö
    arm : vp9 : Add NEON optimizations of VP9 MC functions
    

    This work is sponsored by, and copyright, Google.

    The filter coefficients are signed values, where the product of the
    multiplication with one individual filter coefficient doesn’t
    overflow a 16 bit signed value (the largest filter coefficient is
    127). But when the products are accumulated, the resulting sum can
    overflow the 16 bit signed range. Instead of accumulating in 32 bit,
    we accumulate the largest product (either index 3 or 4) last with a
    saturated addition.

    (The VP8 MC asm does something similar, but slightly simpler, by
    accumulating each half of the filter separately. In the VP9 MC
    filters, each half of the filter can also overflow though, so the
    largest component has to be handled individually.)

    Examples of relative speedup compared to the C version, from checkasm :
    Cortex A7 A8 A9 A53
    vp9_avg4_neon : 1.71 1.15 1.42 1.49
    vp9_avg8_neon : 2.51 3.63 3.14 2.58
    vp9_avg16_neon : 2.95 6.76 3.01 2.84
    vp9_avg32_neon : 3.29 6.64 2.85 3.00
    vp9_avg64_neon : 3.47 6.67 3.14 2.80
    vp9_avg_8tap_smooth_4h_neon : 3.22 4.73 2.76 4.67
    vp9_avg_8tap_smooth_4hv_neon : 3.67 4.76 3.28 4.71
    vp9_avg_8tap_smooth_4v_neon : 5.52 7.60 4.60 6.31
    vp9_avg_8tap_smooth_8h_neon : 6.22 9.04 5.12 9.32
    vp9_avg_8tap_smooth_8hv_neon : 6.38 8.21 5.72 8.17
    vp9_avg_8tap_smooth_8v_neon : 9.22 12.66 8.15 11.10
    vp9_avg_8tap_smooth_64h_neon : 7.02 10.23 5.54 11.58
    vp9_avg_8tap_smooth_64hv_neon : 6.76 9.46 5.93 9.40
    vp9_avg_8tap_smooth_64v_neon : 10.76 14.13 9.46 13.37
    vp9_put4_neon : 1.11 1.47 1.00 1.21
    vp9_put8_neon : 1.23 2.17 1.94 1.48
    vp9_put16_neon : 1.63 4.02 1.73 1.97
    vp9_put32_neon : 1.56 4.92 2.00 1.96
    vp9_put64_neon : 2.10 5.28 2.03 2.35
    vp9_put_8tap_smooth_4h_neon : 3.11 4.35 2.63 4.35
    vp9_put_8tap_smooth_4hv_neon : 3.67 4.69 3.25 4.71
    vp9_put_8tap_smooth_4v_neon : 5.45 7.27 4.49 6.52
    vp9_put_8tap_smooth_8h_neon : 5.97 8.18 4.81 8.56
    vp9_put_8tap_smooth_8hv_neon : 6.39 7.90 5.64 8.15
    vp9_put_8tap_smooth_8v_neon : 9.03 11.84 8.07 11.51
    vp9_put_8tap_smooth_64h_neon : 6.78 9.48 4.88 10.89
    vp9_put_8tap_smooth_64hv_neon : 6.99 8.87 5.94 9.56
    vp9_put_8tap_smooth_64v_neon : 10.69 13.30 9.43 14.34

    For the larger 8tap filters, the speedup vs C code is around 5-14x.

    This is significantly faster than libvpx’s implementation of the same
    functions, at least when comparing the put_8tap_smooth_64 functions
    (compared to vpx_convolve8_horiz_neon and vpx_convolve8_vert_neon from
    libvpx).

    Absolute runtimes from checkasm :
    Cortex A7 A8 A9 A53
    vp9_put_8tap_smooth_64h_neon : 20150.3 14489.4 19733.6 10863.7
    libvpx vpx_convolve8_horiz_neon : 52623.3 19736.4 21907.7 25027.7

    vp9_put_8tap_smooth_64v_neon : 14455.0 12303.9 13746.4 9628.9
    libvpx vpx_convolve8_vert_neon : 42090.0 17706.2 17659.9 16941.2

    Thus, on the A9, the horizontal filter is only marginally faster than
    libvpx, while our version is significantly faster on the other cores,
    and the vertical filter is significantly faster on all cores. The
    difference is especially large on the A7.

    The libvpx implementation does the accumulation in 32 bit, which
    probably explains most of the differences.

    This is an adapted cherry-pick from libav commits
    ffbd1d2b0002576ef0d976a41ff959c635373fdc,
    392caa65df3efa8b2d48a80f08a6af4892c61c08,
    557c1675cf0e803b2fee43b4c8b58433842c84d0 and
    11623217e3c9b859daee544e31acdd0821b61039.

    Signed-off-by : Ronald S. Bultje <rsbultje@gmail.com>

    • [DH] libavcodec/arm/Makefile
    • [DH] libavcodec/arm/vp9dsp_init_arm.c
    • [DH] libavcodec/arm/vp9mc_neon.S
    • [DH] libavcodec/vp9.c
    • [DH] libavcodec/vp9dsp.c
    • [DH] libavcodec/vp9dsp.h
  • Systemd service (python loop -> ffmpeg stream)

    7 janvier 2019, par Kevitto

    I am currently running a stream with ffmpeg, through icecast2 through a python snippet (Fig1). I have created a systemd service to run said python script on boot (Fig2) and use a custom target (Fig3) to make sure it loads once every other service is loaded, mostly for icecast2.

    I’ve conducted multiple tests, and the stream works fine if launched either from the python code or if I restart the service attached to it.

    My problem is, on a (re)boot of the system, the service runs for approximately 15 seconds, then the stream dies. I’ve read so much on python and systemd, but I can’t for the life of me figure out where the problem lies. I’ve tried changing my python code, the unit load order and anything else I found online that could help, but found nothing.

    Fig1 (dxstream.py)

    import sys
    import time
    import subprocess

    def start():
       return subprocess.Popen(r’ffpmeg -re -f alsa -ac2 -i hw:1,0 -acodec mp3 -ab 320k -f mp3 icecast://sourcehackme@localhost:8000/stream', shell=True)

    testProcess = start()

    while True:

       res = testProcess.poll()
       if res is not None:
           testProcess = start()
       time.sleep(1)

    Fig2 (dxstream.service)

    [Unit]
    Description=ffmpeg stream starter
    After=multi-user.target
    [Service]
    Type=idle
    Execstart=/usr/bin/python /usr/local/bin/dxstream.py
    Restart=on-failure

    [Install]
    WantedBy=custom.target

    Fig3 (custom.target)

    [Unit]
    Description=Custom Target
    Requires=multi-user.target
    After=multi-user.target
    AllowIsolate=yes
  • How can I stream raw video frames AND audio to FFMPEG with Python 2.7 ?

    18 novembre 2017, par Just Askin

    I am streaming raw video frames from Pygame to FFMPEG, then sending to a rtmp stream, but for the life of me, I can’t figure out how to send live audio using the same Python module. It does not need to be the Pygame mixer, but I am not opposed to using it if that is where the best answer lies. I’m pretty sure it’s not though.

    My question is this : What is the best strategy to send live audio output from a program to FFMPEG along with raw video frames simultaneously from the same Python module ?

    My program is large, and eventually I would like to build options to switch audio inputs from a queue of music, a microphone, or any other random sounds from any program I want to use. But for the time being, I just want something to work. I am starting off with a simple Espeak command.

    Here is my Python commands :

    command = ['ffmpeg', '-re', '-framerate', '22', '-s', '1280x720', '-pix_fmt', 'rgba', '-f', 'rawvideo', '-i', '-', '-f', 's16le', '-ar', '22500', '-i', '/tmp/audio', '-preset', ultrafast', '-pix_fmt', 'rgba', '-b:v', '2500', '-s', 'hd720', '-r', '25', '-g', '50', '-crf', '20', '-f', 'flv', 'rtmp://xxx' ]

    pipe = sp.Popen(command, stdin=sp.PIPE)

    Then I send my frames to stdin from within my main while True: loop.

    The problem I run into with this strategy is I can’t figure out how to shove audio into FFMPEG from within Python without blocking the pipe. After hours of research, I am pretty confident I can’t use the pipe to send the audio along with the frames. I thought the named pipe was my solution (which works running Espeak outside of Python), but it blocks Python until the Espeak is done... so no good.

    I assume I need threading for multiprocessing, but I cannot figure out from the official documentation or any other resources as to how I can solve my problem with it.

    The ['-f', 's16le', '-ar', '22500', '-i', '/tmp/audio'] are settings that work if I run espeak from a separate terminal with espeak 'some text' --stdout > /tmp/audio.

    I am using Centos 7, Python 2.7, pygame, the latest build of FFMPEG,