Recherche avancée

Médias (91)

Autres articles (77)

  • Dépôt de média et thèmes par FTP

    31 mai 2013, par

    L’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
    Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...)

  • Demande de création d’un canal

    12 mars 2010, par

    En fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
    Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...)

  • Gestion générale des documents

    13 mai 2011, par

    MédiaSPIP ne modifie jamais le document original mis en ligne.
    Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
    Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...)

Sur d’autres sites (6109)

  • An FFMpeg function on azure is not handling simultaneous calls (more than 5)

    9 novembre 2017, par The Lemon

    I created a c# httptrigger function on azure which uses FFMpeg to add subtitles to a video, and then just output the video locally (nothing fancy, all the files are in the local resources for the function, and the output is there as well). The process runs perfectly fine when I test it, I made a C# app to call the function and when I test the app it works fine as well. The only problem is when I tell the app to call the function several times at once it will only work for three or four simultaneous calls, any more than that will cause all of the calls to fail.
    Below is included the function code, the C# app code, and the partial output for successful calls and for failed calls. Any help or advice would be greatly appreciated as always. Regards Cuan

    note - the ffmpeg output from the azure function is largely omitted, as it produces output every few frames. I’ve included the start and the end of the output

    This is the C# method which is being run multiple times at once.

       public static async void callHTTP(string url, int num)
       {
           using (var client = new HttpClient())
           {
               client.Timeout = TimeSpan.FromMinutes(10);
               var content = new StringContent(JsonConvert.SerializeObject(" {\"name\": \"Azure\"}"), Encoding.UTF8, "application/json");
               System.TimeSpan tmp = DateTime.Now - time1;
               Console.WriteLine("Process {0} has started after time {1}", num + 1, tmp.ToString());
               var response = await client.PostAsync(url, content);
               tmp = DateTime.Now - time1;
               Console.WriteLine("Process {0} has finished after time {1}", num + 1, tmp.ToString());
               if (response.IsSuccessStatusCode)
               {
                   Console.WriteLine("this is a reply");
                   finished += 1;
                   tmp = DateTime.Now - time1;
                   Console.WriteLine("Runningtime for process {0} was {1}", num + 1, tmp.ToString());
               }

           }
       }

    This is the function being called

    using System.Net;
    using System;
    using System.Diagnostics;
    using System.ComponentModel;


    public static async Task<httpresponsemessage> Run(HttpRequestMessage req, TraceWriter log)
    {

    log.Info("C# HTTP trigger function processed a request.");
    //Basic Parameters
       string ffmpegFile = @"D:\home\site\wwwroot\CommonResources\ffmpeg.exe";
       string outputpath = @"D:\home\site\wwwroot\ffmpeg_generic_webhook\output\";
       string reloutputpath = "output/";
       string relinputpath = "input/";
       string outputfile = "video2.mp4";
       string dir =  @"D:\home\site\wwwroot\ffmpeg_generic_webhook\";

    //Special Parameters
       string videoFile = "1 minute basic.mp4";
       string sub = "1 minute sub.ass";
    //guid tmp files
       string f1 = videoFile;
       string f2 = sub;
    //guid output
       Guid g3 = Guid.NewGuid();
       string outputGuid = g3+".mp4";

    //argument
       string tmp = subArg(f1, f2, outputGuid );
    //String.Format("-i \"" + @"input/tmp.mp4" + "\" -vf \"ass = '" + sub + "'\" \"" + reloutputpath +outputfile + "\" ");
    log.Info("ffmpeg argument is: "+tmp);


    //startprocess parameters
    Process process = new Process();
    process.StartInfo.FileName = ffmpegFile;
    process.StartInfo.Arguments =  tmp;
    process.StartInfo.UseShellExecute = false;
    process.StartInfo.RedirectStandardOutput = true;
    process.StartInfo.RedirectStandardError = true;
    process.StartInfo.WorkingDirectory = dir;
    //output handler

    process.OutputDataReceived += new DataReceivedEventHandler(
       (s, e) =>
       {
           log.Info("O: "+e.Data);
       }
    );
    process.ErrorDataReceived += new DataReceivedEventHandler(
       (s, e) =>
       {
           log.Info("E: "+e.Data);
       }
    );
    //start process
    process.Start();
    log.Info("process started");
    process.BeginOutputReadLine();
    process.BeginErrorReadLine();
    process.WaitForExit();
    log.Info("process has finished, deleting any tmp files and replying");
    return req.CreateResponse(HttpStatusCode.OK, outputGuid);
    }
    </httpresponsemessage>

    The output for the failed set of calls (they all run together, so the output is a bit jumbled)

    2017-11-08T05:49:48.821 Function started (Id=1b2cc785-086d-495a-a994-3ee9b86bb926)
    2017-11-08T05:49:48.834 Function started (Id=f0b9b383-b86b-4006-9e13-59861e2c0c35)
    2017-11-08T05:49:48.834 Function started (Id=80c2a433-728e-42d3-804d-87461e369bd8)
    2017-11-08T05:49:49.287 C# HTTP trigger function processed a request.
    2017-11-08T05:49:49.287 ffmpeg argument is: -i "input/1 minute basic.mp4" -vf "ass = 'input/1 minute sub.ass'" "output/8ab2a4fd-39df-4da9-b0c5-5b33e95d6403.mp4"
    2017-11-08T05:49:49.305 C# HTTP trigger function processed a request.
    2017-11-08T05:49:49.305 ffmpeg argument is: -i "input/1 minute basic.mp4" -vf "ass = 'input/1 minute sub.ass'" "output/5805f054-db13-4154-8fe8-545161d2eb83.mp4"
    2017-11-08T05:49:49.305 C# HTTP trigger function processed a request.
    2017-11-08T05:49:49.305 ffmpeg argument is: -i "input/1 minute basic.mp4" -vf "ass = 'input/1 minute sub.ass'" "output/4275f98d-7a31-484c-960b-1e133056e895.mp4"
    2017-11-08T05:49:49.381 process started
    2017-11-08T05:49:49.428 process started
    2017-11-08T05:49:49.491 E: ffmpeg version 3.3.3 Copyright (c) 2000-2017 the FFmpeg developers
    2017-11-08T05:49:49.491 E:   built with gcc 7.1.0 (GCC)
    2017-11-08T05:49:49.491 E:   configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
    2017-11-08T05:49:49.491 E:   libavutil      55. 58.100 / 55. 58.100
    2017-11-08T05:49:49.491 E:   libavcodec     57. 89.100 / 57. 89.100
    2017-11-08T05:49:49.491 E:   libavformat    57. 71.100 / 57. 71.100
    2017-11-08T05:49:49.491 E:   libavdevice    57.  6.100 / 57.  6.100
    2017-11-08T05:49:49.491 E:   libavfilter     6. 82.100 /  6. 82.100
    2017-11-08T05:49:49.491 E:   libswscale      4.  6.100 /  4.  6.100
    2017-11-08T05:49:49.491 E:   libswresample   2.  7.100 /  2.  7.100
    2017-11-08T05:49:49.491 E:   libpostproc    54.  5.100 / 54.  5.100
    2017-11-08T05:49:49.522 process started
    2017-11-08T05:49:49.570 E: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input/1 minute basic.mp4':
    2017-11-08T05:49:49.570 E:   Metadata:
    2017-11-08T05:49:49.570 E:     major_brand     : mp42
    2017-11-08T05:49:49.570 E:     minor_version   : 0
    2017-11-08T05:49:49.570 E:     compatible_brands: mp41isom
    2017-11-08T05:49:49.570 E:     creation_time   : 2017-11-03T23:42:35.000000Z
    2017-11-08T05:49:49.570 E:   Duration: 00:01:00.03, start: 0.000000, bitrate: 824 kb/s
    2017-11-08T05:49:49.570 E:     Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 823 kb/s, 30.30 fps, 30.30 tbr, 30k tbn, 60 tbc (default)
    2017-11-08T05:49:49.570 E:     Metadata:
    2017-11-08T05:49:49.570 E:       creation_time   : 2017-11-03T23:42:35.000000Z
    2017-11-08T05:49:49.570 E:       handler_name    : VideoHandler
    2017-11-08T05:49:49.570 E:       encoder         : AVC Coding
    2017-11-08T05:49:49.584 E: Stream mapping:
    2017-11-08T05:49:49.584 E:   Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
    2017-11-08T05:49:49.584 E: Press [q] to stop, [?] for help
    2017-11-08T05:49:49.615 E: [Parsed_ass_0 @ 000000000117ee60] Shaper: FriBidi 0.19.6 (SIMPLE)
    2017-11-08T05:49:49.631 process started
    2017-11-08T05:49:49.929 process started
    2017-11-08T05:49:50.069 process started
    2017-11-08T05:49:50.115 process started
    2017-11-08T05:49:54.990 E: [Parsed_ass_0 @ 000000000117ee60] Using font provider directwrite
    2017-11-08T05:49:54.990 E: [Parsed_ass_0 @ 000000000117ee60] Added subtitle file: 'input/1 minute sub.ass' (5 styles, 6 events)
    2017-11-08T05:49:55.006 E: [Parsed_ass_0 @ 000000000117ee60] fontselect: (Arial, 700, 0) -> Arial-BoldMT, 0, Arial-BoldMT
    2017-11-08T05:49:55.006 E: [libx264 @ 00000000004dd860] using SAR=1/1
    2017-11-08T05:49:55.006 E: [libx264 @ 00000000004dd860] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    2017-11-08T05:49:55.022 E: [libx264 @ 00000000004dd860] profile High, level 3.2
    2017-11-08T05:49:55.022 E: [libx264 @ 00000000004dd860] 264 - core 152 r2851 ba24899 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    2017-11-08T05:49:55.022 E: Output #0, mp4, to 'output/8ab2a4fd-39df-4da9-b0c5-5b33e95d6403.mp4':
    2017-11-08T05:49:55.022 E:   Metadata:
    2017-11-08T05:49:55.022 E:     major_brand     : mp42
    2017-11-08T05:49:55.022 E:     minor_version   : 0
    2017-11-08T05:49:55.022 E:     compatible_brands: mp41isom
    2017-11-08T05:49:55.022 E:     encoder         : Lavf57.71.100
    2017-11-08T05:49:55.022 E:     Stream #0:0(und): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 30.30 fps, 16k tbn, 30.30 tbc (default)
    2017-11-08T05:49:55.022 E:     Metadata:
    2017-11-08T05:49:55.022 E:       creation_time   : 2017-11-03T23:42:35.000000Z
    2017-11-08T05:49:55.022 E:       handler_name    : VideoHandler
    2017-11-08T05:49:55.022 E:       encoder         : Lavc57.89.100 libx264
    2017-11-08T05:49:55.022 E:     Side data:
    2017-11-08T05:49:55.022 E:       cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    2017-11-08T05:49:56.787 E: frame=    2 fps=0.4 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x
    2017-11-08T05:49:56.851 E: frame=    4 fps=0.6 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x

    lots of code omitted here, only showing one of the many calls failing due to character limit.

    2017-11-08T05:50:27.695 E: x264 [error]: malloc of size 3233984 failed
    2017-11-08T05:50:27.695 E: Video encoding failed
    2017-11-08T05:50:27.932 E: frame=  112 fps=3.0 q=29.0 size=      92kB time=00:00:02.24 bitrate= 335.9kbits/s speed=0.0598x
    2017-11-08T05:50:28.132 E: Conversion failed!
    2017-11-08T05:50:28.274 E: frame=  164 fps=4.3 q=29.0 size=      97kB time=00:00:03.96 bitrate= 201.0kbits/s speed=0.104x
    2017-11-08T05:50:28.304 E: Conversion failed!
    2017-11-08T05:50:28.304 E: Conversion failed!
    2017-11-08T05:50:28.336 E: frame=  253 fps=6.6 q=29.0 size=     159kB time=00:00:06.89 bitrate= 189.0kbits/s speed=0.179x
    2017-11-08T05:50:30.163 E: frame=   27 fps=0.7 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x
    2017-11-08T05:50:30.227 E: frame=   28 fps=0.7 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x
    2017-11-08T05:50:30.276 E:
    2017-11-08T05:50:30.305 O:
    2017-11-08T05:50:30.727 E: frame=   40 fps=1.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x
    2017-11-08T05:50:30.867 E: frame=  129 fps=3.2 q=29.0 size=      93kB time=00:00:02.80 bitrate= 272.3kbits/s speed=0.0693x
    2017-11-08T05:50:30.929 E:
    2017-11-08T05:50:30.929 O:
    2017-11-08T05:50:30.929 E:
    2017-11-08T05:50:30.948 O:
    2017-11-08T05:50:31.290 E: frame=  178 fps=4.3 q=29.0 size=     116kB time=00:00:04.42 bitrate= 214.8kbits/s speed=0.108x
    2017-11-08T05:50:31.822 E: frame=  133 fps=3.2 q=29.0 size=      94kB time=00:00:02.93 bitrate= 261.0kbits/s speed=0.0715x

    working example (only one call)

    2017-11-08T07:07:08.633 Function started (Id=5416410c-a185-44bd-8c9c-fc24efb80780)
    2017-11-08T07:07:09.180 C# HTTP trigger function processed a request.
    2017-11-08T07:07:09.180 ffmpeg argument is: -i "input/1 minute basic.mp4" -vf "ass = 'input/1 minute sub.ass'" "output/9a7af992-7202-45c6-a275-f71a184fc89b.mp4"
    2017-11-08T07:07:09.508 process started
    2017-11-08T07:07:10.992 E: ffmpeg version 3.3.3 Copyright (c) 2000-2017 the FFmpeg developers
    2017-11-08T07:07:10.992 E:   built with gcc 7.1.0 (GCC)
    2017-11-08T07:07:10.992 E:   configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
    2017-11-08T07:07:11.367 E:   libavutil      55. 58.100 / 55. 58.100
    2017-11-08T07:07:11.367 E:   libavcodec     57. 89.100 / 57. 89.100
    2017-11-08T07:07:11.367 E:   libavformat    57. 71.100 / 57. 71.100
    2017-11-08T07:07:11.367 E:   libavdevice    57.  6.100 / 57.  6.100
    2017-11-08T07:07:11.367 E:   libavfilter     6. 82.100 /  6. 82.100
    2017-11-08T07:07:11.367 E:   libswscale      4.  6.100 /  4.  6.100
    2017-11-08T07:07:11.367 E:   libswresample   2.  7.100 /  2.  7.100
    2017-11-08T07:07:11.367 E:   libpostproc    54.  5.100 / 54.  5.100
    2017-11-08T07:07:12.977 E: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input/1 minute basic.mp4':
    2017-11-08T07:07:12.977 E:   Metadata:
    2017-11-08T07:07:12.977 E:     major_brand     : mp42
    2017-11-08T07:07:12.977 E:     minor_version   : 0
    2017-11-08T07:07:12.977 E:     compatible_brands: mp41isom
    2017-11-08T07:07:12.977 E:     creation_time   : 2017-11-03T23:42:35.000000Z
    2017-11-08T07:07:12.977 E:   Duration: 00:01:00.03, start: 0.000000, bitrate: 824 kb/s
    2017-11-08T07:07:12.977 E:     Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 823 kb/s, 30.30 fps, 30.30 tbr, 30k tbn, 60 tbc (default)
    2017-11-08T07:07:12.977 E:     Metadata:
    2017-11-08T07:07:12.977 E:       creation_time   : 2017-11-03T23:42:35.000000Z
    2017-11-08T07:07:12.977 E:       handler_name    : VideoHandler
    2017-11-08T07:07:12.977 E:       encoder         : AVC Coding
    2017-11-08T07:07:12.992 E: Stream mapping:
    2017-11-08T07:07:13.008 E:   Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
    2017-11-08T07:07:13.008 E: Press [q] to stop, [?] for help
    2017-11-08T07:07:13.320 E: [Parsed_ass_0 @ 000000000107ee60] Shaper: FriBidi 0.19.6 (SIMPLE)
    2017-11-08T07:07:14.987 E: [Parsed_ass_0 @ 000000000107ee60] Using font provider directwrite
    2017-11-08T07:07:15.143 E: [Parsed_ass_0 @ 000000000107ee60] Added subtitle file: 'input/1 minute sub.ass' (5 styles, 6 events)
    2017-11-08T07:07:15.455 E: [Parsed_ass_0 @ 000000000107ee60] fontselect: (Arial, 700, 0) -> Arial-BoldMT, 0, Arial-BoldMT
    2017-11-08T07:07:15.833 E: [libx264 @ 00000000004fd860] using SAR=1/1
    2017-11-08T07:07:15.911 E: [libx264 @ 00000000004fd860] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    2017-11-08T07:07:15.973 E: [libx264 @ 00000000004fd860] profile High, level 3.2
    2017-11-08T07:07:15.973 E: [libx264 @ 00000000004fd860] 264 - core 152 r2851 ba24899 - H.264/MPEG-4 AVC codec - Copyleft 2003-2017 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    2017-11-08T07:07:15.973 E: Output #0, mp4, to 'output/9a7af992-7202-45c6-a275-f71a184fc89b.mp4':
    2017-11-08T07:07:15.973 E:   Metadata:
    2017-11-08T07:07:15.973 E:     major_brand     : mp42
    2017-11-08T07:07:15.973 E:     minor_version   : 0
    2017-11-08T07:07:15.973 E:     compatible_brands: mp41isom
    2017-11-08T07:07:15.973 E:     encoder         : Lavf57.71.100
    2017-11-08T07:07:15.973 E:     Stream #0:0(und): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 30.30 fps, 16k tbn, 30.30 tbc (default)
    2017-11-08T07:07:15.973 E:     Metadata:
    2017-11-08T07:07:15.973 E:       creation_time   : 2017-11-03T23:42:35.000000Z
    2017-11-08T07:07:15.973 E:       handler_name    : VideoHandler
    2017-11-08T07:07:15.973 E:       encoder         : Lavc57.89.100 libx264
    2017-11-08T07:07:15.973 E:     Side data:
    2017-11-08T07:07:15.973 E:       cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    2017-11-08T07:07:16.137 E: frame=    2 fps=0.7 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x
    2017-11-08T07:07:16.528 E: frame=   21 fps=6.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A speed=   0x
    2017-11-08T07:07:17.622 E: frame=   43 fps=9.5 q=29.0 size=      34kB time=-00:00:00.03 bitrate=N/A speed=N/A
    2017-11-08T07:07:18.122 E: frame=   46 fps=9.1 q=29.0 size=      35kB time=00:00:00.06 bitrate=4372.6kbits/s speed=0.013x

     omitted 

    2017-11-08T07:07:30.809 E: [Parsed_ass_0 @ 000000000107ee60] fontselect: (Arial, 400, 0) -> ArialMT, 0, ArialMT

    2017-11-08T07:08:43.186 E: frame= 1819 fps= 20 q=29.0 Lsize=     992kB time=00:00:59.92 bitrate= 135.6kbits/s speed=0.665x
    2017-11-08T07:08:43.186 E: video:971kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 2.171792%
    2017-11-08T07:08:43.217 E: [libx264 @ 00000000004fd860] frame I:8     Avg QP:12.19  size: 44849
    2017-11-08T07:08:43.217 E: [libx264 @ 00000000004fd860] frame P:532   Avg QP:16.00  size:   923
    2017-11-08T07:08:43.217 E: [libx264 @ 00000000004fd860] frame B:1279  Avg QP:20.61  size:   112
    2017-11-08T07:08:43.217 E: [libx264 @ 00000000004fd860] consecutive B-frames:  4.7%  0.8% 11.4% 83.1%
    2017-11-08T07:08:43.217 E: [libx264 @ 00000000004fd860] mb I  I16..4: 49.2% 24.2% 26.7%
    2017-11-08T07:08:43.217 E: [libx264 @ 00000000004fd860] mb P  I16..4:  0.2%  0.3%  0.1%  P16..4:  2.6%  0.3%  0.4%  0.0%  0.0%    skip:96.2%
    2017-11-08T07:08:43.217 E: [libx264 @ 00000000004fd860] mb B  I16..4:  0.0%  0.1%  0.0%  B16..8:  2.1%  0.0%  0.0%  direct: 0.0%  skip:97.7%  L0:40.0% L1:59.7% BI: 0.3%
    2017-11-08T07:08:43.233 E: [libx264 @ 00000000004fd860] 8x8 transform intra:39.3% inter:39.5%
    2017-11-08T07:08:43.233 E: [libx264 @ 00000000004fd860] coded y,uvDC,uvAC intra: 16.3% 15.7% 8.8% inter: 0.5% 0.0% 0.0%
    2017-11-08T07:08:43.233 E: [libx264 @ 00000000004fd860] i16 v,h,dc,p: 56% 31%  4%  9%
    2017-11-08T07:08:43.233 E: [libx264 @ 00000000004fd860] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24%  9% 65%  1%  0%  0%  0%  0%  0%
    2017-11-08T07:08:43.233 E: [libx264 @ 00000000004fd860] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 31% 21% 15%  6%  6%  6%  4%  6%  4%
    2017-11-08T07:08:43.233 E: [libx264 @ 00000000004fd860] i8c dc,h,v,p: 71% 16% 11%  1%
    2017-11-08T07:08:43.233 E: [libx264 @ 00000000004fd860] Weighted P-Frames: Y:0.0% UV:0.0%
    2017-11-08T07:08:43.233 E: [libx264 @ 00000000004fd860] ref P L0: 71.3% 12.7% 14.6%  1.4%
    2017-11-08T07:08:43.233 E: [libx264 @ 00000000004fd860] ref B L0: 69.3% 29.3%  1.4%
    2017-11-08T07:08:43.233 E: [libx264 @ 00000000004fd860] ref B L1: 97.0%  3.0%
    2017-11-08T07:08:43.233 E: [libx264 @ 00000000004fd860] kb/s:132.38
    2017-11-08T07:08:43.295 O:
    2017-11-08T07:08:43.295 E:
    2017-11-08T07:08:43.342 Function completed (Success, Id=5416410c-a185-44bd-8c9c-fc24efb80780, Duration=94698ms)
  • imdct15 : remove the AArch64 assembly

    4 janvier 2017, par Rostislav Pehlivanov
    imdct15 : remove the AArch64 assembly
    

    Prep work for the next commit, which will add a new FFT algorithm
    which makes the iMDCT over 3x faster than it is currently (standalone,
    the FFT is with some framesizes over 10x faster).

    The new FFT algorithm uses the already thouroughly SIMD’d power of two
    FFT which already has SIMD for AArch64, so users of that platform will
    still see an improvement.

    The previous FFT+SIMD was barely 2.5x faster than the C versions on these
    platforms.

    Signed-off-by : Rostislav Pehlivanov <atomnuker@gmail.com>

    • [DH] libavcodec/aarch64/Makefile
    • [DH] libavcodec/aarch64/imdct15_init.c
    • [DH] libavcodec/aarch64/imdct15_neon.S
    • [DH] libavcodec/imdct15.c
    • [DH] libavcodec/imdct15.h
  • imdct15 : replace the FFT with a faster PFA FFT algorithm

    4 janvier 2017, par Rostislav Pehlivanov
    imdct15 : replace the FFT with a faster PFA FFT algorithm
    

    This commit replaces the current inefficient non-power-of-two FFT with a
    much faster FFT based on the Prime Factor Algorithm.
    Although it is already much faster than the old algorithm without SIMD,
    the new algorithm makes use of the already very throughouly SIMD’d power
    of two FFT, which improves performance even more across all platforms
    which we have SIMD support for.

    Most of the work was done by Peter Barfuss, who passed the code to me to
    implement into the iMDCT and the current codebase. The code for a
    5-point and 15-point FFT was derived from the previous implementation,
    although it was optimized and simplified, which will make its future
    SIMD easier. The 15-point FFT is currently using 6% of the current
    overall decoder overhead.

    The FFT can now easily be used as a forward transform by simply not
    multiplying the 5-point FFT’s imaginary component by -1 (which comes
    from the fact that changing the complex exponential’s angle by -1 also
    changes the output by that) and by multiplying the "theta" angle of the
    main exptab by -1. Hence the deliberately left multiplication by -1 at
    the end.

    FATE passes, and performance reports on other platforms/CPUs are
    welcome.

    Performance comparisons :

    iMDCT, PFA :
    101127 decicycles in speed, 32765 runs, 3 skips
    iMDCT, Old :
    211022 decicycles in speed, 32768 runs, 0 skips

    Standalone FFT, 300000 transforms of size 960 :
    PFA Old FFT kiss_fft libfftw3f
    3.659695s, 15.726912s, 13.300789s, 1.182222s

    Being only 3x slower than libfftw3f is a big achievement by itself.

    There appears to be something capping the performance in the iMDCT side
    of things, possibly during the pre-stage reindexing. However, it is
    certainly fast enough for now.

    Signed-off-by : Rostislav Pehlivanov <atomnuker@gmail.com>

    • [DH] libavcodec/imdct15.c
    • [DH] libavcodec/imdct15.h