Recherche avancée

Médias (1)

Mot : - Tags -/sintel

Autres articles (30)

  • La file d’attente de SPIPmotion

    28 novembre 2010, par

    Une file d’attente stockée dans la base de donnée
    Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
    Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...)

  • 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" (...)

Sur d’autres sites (4632)

  • aarch64 : h264pred : Optimize the inner loop of existing 8 bit functions

    12 avril 2021, par Martin Storsjö
    aarch64 : h264pred : Optimize the inner loop of existing 8 bit functions
    

    Move the loop counter decrement further from the branch instruction,
    this hides the latency of the decrement.

    In loops that first load, then store (the horizontal prediction cases),
    do the decrement after the load (where the next instruction would
    stall a bit anyway, waiting for the result of the load).

    In loops that store twice using the same destination register,
    also do the decrement between the two stores (as the second store
    would need to wait for the updated destination register from the
    first instruction).

    In loops that store twice to two different destination registers,
    do the decrement before both stores, to do it as soon before the
    branch as possible.

    This gives minor (1-2 cycle) speedups in most cases (modulo measurement
    noise), but the horizontal prediction functions get a rather notable
    speedup on the Cortex A53.

    Before : Cortex A53 A72 A73
    pred8x8_dc_8_neon : 60.7 46.2 39.2
    pred8x8_dc_128_8_neon : 30.7 18.0 14.0
    pred8x8_horizontal_8_neon : 42.2 29.2 18.5
    pred8x8_left_dc_8_neon : 52.7 36.2 32.2
    pred8x8_mad_cow_dc_0l0_8_neon : 48.2 27.7 25.7
    pred8x8_mad_cow_dc_0lt_8_neon : 52.5 33.2 34.7
    pred8x8_mad_cow_dc_l0t_8_neon : 52.5 31.7 33.2
    pred8x8_mad_cow_dc_l00_8_neon : 43.2 27.0 25.5
    pred8x8_plane_8_neon : 112.2 86.2 88.2
    pred8x8_top_dc_8_neon : 40.7 23.0 21.2
    pred8x8_vertical_8_neon : 27.2 15.5 14.0
    pred16x16_dc_8_neon : 91.0 73.2 70.5
    pred16x16_dc_128_8_neon : 43.0 34.7 30.7
    pred16x16_horizontal_8_neon : 86.0 49.7 44.7
    pred16x16_left_dc_8_neon : 87.0 67.2 67.5
    pred16x16_plane_8_neon : 236.0 175.7 173.0
    pred16x16_top_dc_8_neon : 53.2 39.0 41.7
    pred16x16_vertical_8_neon : 41.7 29.7 31.0

    After :
    pred8x8_dc_8_neon : 59.0 46.7 42.5
    pred8x8_dc_128_8_neon : 28.2 18.0 14.0
    pred8x8_horizontal_8_neon : 34.2 29.2 18.5
    pred8x8_left_dc_8_neon : 51.0 38.2 32.7
    pred8x8_mad_cow_dc_0l0_8_neon : 46.7 28.2 26.2
    pred8x8_mad_cow_dc_0lt_8_neon : 55.2 33.7 37.5
    pred8x8_mad_cow_dc_l0t_8_neon : 51.2 31.7 37.2
    pred8x8_mad_cow_dc_l00_8_neon : 41.7 27.5 26.0
    pred8x8_plane_8_neon : 111.5 86.5 89.5
    pred8x8_top_dc_8_neon : 39.0 23.2 21.0
    pred8x8_vertical_8_neon : 27.2 16.0 14.0
    pred16x16_dc_8_neon : 85.0 70.2 70.5
    pred16x16_dc_128_8_neon : 42.0 30.0 30.7
    pred16x16_horizontal_8_neon : 66.5 49.5 42.5
    pred16x16_left_dc_8_neon : 81.0 66.5 67.5
    pred16x16_plane_8_neon : 235.0 175.7 173.0
    pred16x16_top_dc_8_neon : 52.0 39.0 41.7
    pred16x16_vertical_8_neon : 40.2 33.2 31.0

    Despite this, a number of these functions still are slower than
    what e.g. GCC 7 generates - this shows the relative speedup of the
    neon codepaths over the compiler generated ones :

    Cortex A53 A72 A73
    pred8x8_dc_8_neon : 0.86 0.65 1.04
    pred8x8_dc_128_8_neon : 0.59 0.44 0.62
    pred8x8_horizontal_8_neon : 1.51 0.58 1.30
    pred8x8_left_dc_8_neon : 0.72 0.56 0.89
    pred8x8_mad_cow_dc_0l0_8_neon : 0.93 0.93 1.37
    pred8x8_mad_cow_dc_0lt_8_neon : 1.37 1.41 1.68
    pred8x8_mad_cow_dc_l0t_8_neon : 1.21 1.17 1.32
    pred8x8_mad_cow_dc_l00_8_neon : 1.24 1.19 1.60
    pred8x8_plane_8_neon : 3.36 3.58 3.76
    pred8x8_top_dc_8_neon : 0.97 0.99 1.43
    pred8x8_vertical_8_neon : 0.86 0.78 1.18
    pred16x16_dc_8_neon : 1.20 1.06 1.49
    pred16x16_dc_128_8_neon : 0.83 0.95 0.99
    pred16x16_horizontal_8_neon : 1.78 0.96 1.59
    pred16x16_left_dc_8_neon : 1.06 0.96 1.32
    pred16x16_plane_8_neon : 5.78 6.49 7.19
    pred16x16_top_dc_8_neon : 1.48 1.53 1.94
    pred16x16_vertical_8_neon : 1.39 1.34 1.98

    In particular, on Cortex A72, many of these functions are slower
    than the compiler generated code, while they're more beneficial on
    e.g. the Cortex A73.

    Signed-off-by : Martin Storsjö <martin@martin.st>

    • [DH] libavcodec/aarch64/h264pred_neon.S
  • FFMPEG conversion (h.264) taking long time for short videos

    15 février 2023, par Sara

    I am trying to record the video and upload into the aws s3 server. Vuejs as front end and php Laravel as backend, I was not using any conversion before saving it to s3. Due to this if any recording recorded from android cannot be played in apple device due to some codecs..&#xA;To over come this, I am using ffmpeg to encode in X264() format to make it play in apple and android device regardless on which device the recording is done.

    &#xA;

    1 min video taking 6-7 minutes using ffmpeg. I thought may be aws s3 taking time to save, i commented "saving to s3 bucket code" still very slow to save temp public folder in php.

    &#xA;

    please check the code if i am missing anything to make conversion quick. if any solution update answer with reference link or code snippet with reference to my code below.

    &#xA;

    public function video_upload(Request $request)&#xA;    {&#xA;                // Response Declaration   &#xA;                $response=array();&#xA;                $response_code = 200;&#xA;                $response[&#x27;status&#x27;] = false;&#xA;                $response[&#x27;data&#x27;] = [];&#xA;                // Validation&#xA;                // TODO: Specify mimes:mp4,webm,ogg etc &#xA;                $validator = Validator::make(&#xA;                $request->all(), [&#xA;                &#x27;file&#x27; => &#x27;required&#x27;&#xA;                ]&#xA;                );&#xA;                if ($validator->fails()) {&#xA;                $response[&#x27;data&#x27;][&#x27;validator&#x27;] = $validator->errors();&#xA;                return response()->json($response);&#xA;                }&#xA;                try{&#xA;                    $file = $request->file(&#x27;file&#x27;);&#xA;                    //convert&#xA;                    $ffmpeg = FFMpeg\FFMpeg::create();&#xA;                    $video = $ffmpeg->open($file);&#xA;                    $format = new X264(); &#xA;                    //end convert&#xA;                    $file_name =  str_replace (&#x27; &#x27;, &#x27;-&#x27;, Hash::make(time()));&#xA;                    $file_name = preg_replace(&#x27;/[^A-Za-z0-9\-]/&#x27;, &#x27;&#x27;,$file_name).&#x27;.mp4&#x27;;&#xA;                    &#xA;                    $video->save($format, $file_name);&#xA;                    $file_folder = &#x27;uploads/video/&#x27;;&#xA;                    // Store the file to S3&#xA;                    &#xA;                    // $store = Storage::disk(&#x27;s3&#x27;)->put($file_folder.$file_name, file_get_contents($file));&#xA;                    $store = Storage::disk(&#x27;s3&#x27;)->put($file_folder.$file_name, file_get_contents($file_name));&#xA;                    if($store){&#xA;                        // Replace old file if exist&#xA;                        //delete the file from public folder&#xA;                        $file = public_path($file_name);&#xA;                        if (file_exists($file)) {&#xA;                            unlink($file);&#xA;                        }&#xA;&#xA;                        if(isset($request->old_file)){&#xA; &#xA;                            if(Storage::disk(&#x27;s3&#x27;)->exists($file_folder.basename($request->old_file))) {&#xA;                                 Storage::disk(&#x27;s3&#x27;)->delete($file_folder.basename($request->old_file));&#xA;                            }&#xA;                        }&#xA;                    }&#xA;                    $response[&#x27;status&#x27;] = true;&#xA;                    $response[&#x27;data&#x27;]= &#x27;/s3/&#x27;.$file_folder. $file_name;&#xA;&#xA;                }catch (\Exception $e) {&#xA;                    $response[&#x27;data&#x27;][&#x27;message&#x27;]=$e->getMessage()."line".$e->getLine();&#xA;                    $response_code = 400;&#xA;                }&#xA;                return response()->json($response, $response_code);&#xA;    }&#xA;

    &#xA;

    Its blocking point for me. I cannot let user to wait 5-6 mins to upload 1 min video.

    &#xA;

  • Encoding video for real time streaming

    15 septembre 2019, par lilroo

    Miguel Grinberg’s article video streaming with flask, covers sending multiple JPG formatted images to a client through a multipart response to stream video to the browser.

    After doing some reading, I quickly realized that MJPEG is not a real video format, JPEGs are not optimized for video streaming and MJPEG cannot be streamed to a HTML5 video element.

    for my application (a screen sharing application written in python), I need to be able to encode and stream relatively smooth video (smoother than MJPEG anyway) in semi-realtime to the browser.

    I think what I need to do is encode a video stream using a tool like FFmpeg and then send chunks of that output to a browser using a multipart response - however it doesn’t look like there is a way to get FFmpeg (using python bindings) to write to an in-memory buffer.

    Is ffmpeg up to this task ?

    I appreciate that this question may sound nieve, but I would be thankful for being pointed in the right direction.