Recherche avancée

Médias (1)

Mot : - Tags -/intégration

Autres articles (100)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

Sur d’autres sites (8346)

  • Evolution #4271 (Nouveau) : valider_url_distante => pouvoir déclarer des domaines distants et pas ...

    21 janvier 2019, par - Equipement

    Bonjour,

    La fonction valider_url_distante permet de déclarer des hosts distants :

    1. <span class="CodeRay"><span class="local-variable">$known_hosts</span> = pipeline(<span class="string"><span class="delimiter">'</span><span class="content">declarer_hosts_distants</span><span class="delimiter">'</span></span>, <span class="local-variable">$known_hosts</span>);
    2. </span>

    Télécharger

    C’est très bien, mais avec plusieurs centaines de hosts à déclarer (dont la liste varie dans le temps), cela devient compliqué à gérer.

    Serait-il possible d’avoir, en plus, la possibilité de déclarer des domaines distants ?

    Une première piste serait de pouvoir déclarer .example.com dans le pipeline pour inclure tous les *.example.com au lieu des les énumérer un par un.

    Une seconde piste consisterait à s’inspirer de la function need_proxy (via une constante avec la même syntaxe que pour le http_noproxy) :

    // Pour mémoire code actuel à conserver ...

    1. <span class="CodeRay">    <span class="local-variable">$is_known_host</span> = <span class="predefined-constant">false</span>;
    2.     <span class="keyword">foreach</span> (<span class="local-variable">$known_hosts</span> <span class="keyword">as</span> <span class="local-variable">$known_host</span>) {
    3.         <span class="local-variable">$parse_known</span> = <span class="predefined">parse_url</span>(<span class="local-variable">$known_host</span>);
    4.         <span class="keyword">if</span> (<span class="local-variable">$parse_known</span>
    5.           <span class="keyword">and</span> <span class="predefined">strtolower</span>(<span class="local-variable">$parse_known</span>[<span class="string"><span class="delimiter">'</span><span class="content">host</span><span class="delimiter">'</span></span>]) === <span class="predefined">strtolower</span>(<span class="local-variable">$parsed_url</span>[<span class="string"><span class="delimiter">'</span><span class="content">host</span><span class="delimiter">'</span></span>])) {
    6.             <span class="local-variable">$is_known_host</span> = <span class="predefined-constant">true</span>;
    7.             <span class="keyword">break</span>;
    8.         }
    9.     }
    10. </span>

    Télécharger

    // ... que l’on pourrait faire suivre de ce code (complètement inspiré de function need_proxy) :

    1. <span class="CodeRay">    <span class="keyword">if</span> (!<span class="local-variable">$is_known_host</span>) {
    2.                 <span class="local-variable">$known_domaines</span> = _DECLARER_DOMAINES_DISTANTS;
    3.  
    4.                 <span class="local-variable">$known_domaines</span> = <span class="predefined">str_replace</span>(<span class="string"><span class="delimiter">"</span><span class="char">\n</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content"> </span><span class="delimiter">"</span></span>, <span class="local-variable">$known_domaines</span>);
    5.                 <span class="local-variable">$known_domaines</span> = <span class="predefined">str_replace</span>(<span class="string"><span class="delimiter">"</span><span class="char">\r</span><span class="delimiter">"</span></span>, <span class="string"><span class="delimiter">"</span><span class="content"> </span><span class="delimiter">"</span></span>, <span class="local-variable">$known_domaines</span>);
    6.                 <span class="local-variable">$known_domaines</span> = <span class="string"><span class="delimiter">"</span><span class="content"> </span><span class="local-variable">$known_domaines</span><span class="content"> </span><span class="delimiter">"</span></span>;
    7.                 <span class="local-variable">$domain</span> = <span class="predefined">strtolower</span>(<span class="local-variable">$parsed_url</span>[<span class="string"><span class="delimiter">'</span><span class="content">host</span><span class="delimiter">'</span></span>]);
    8.  
    9.                 <span class="keyword">if</span> (<span class="predefined">strpos</span>(<span class="local-variable">$known_domaines</span>, <span class="string"><span class="delimiter">"</span><span class="content"> </span><span class="local-variable">$domain</span><span class="content"> </span><span class="delimiter">"</span></span>) !== <span class="predefined-constant">false</span>){
    10.                     <span class="local-variable">$is_known_host</span> = <span class="predefined-constant">true</span>;
    11.                 }
    12.  
    13.                 <span class="keyword">while</span> (<span class="predefined">strpos</span>(<span class="local-variable">$domain</span>, <span class="string"><span class="delimiter">'</span><span class="content">.</span><span class="delimiter">'</span></span>) !== <span class="predefined-constant">false</span>) {
    14.                         <span class="local-variable">$domain</span> = <span class="predefined">explode</span>(<span class="string"><span class="delimiter">'</span><span class="content">.</span><span class="delimiter">'</span></span>, <span class="local-variable">$domain</span>);
    15.                         <span class="predefined">array_shift</span>(<span class="local-variable">$domain</span>);
    16.                         <span class="local-variable">$domain</span> = <span class="predefined">implode</span>(<span class="string"><span class="delimiter">'</span><span class="content">.</span><span class="delimiter">'</span></span>, <span class="local-variable">$domain</span>);
    17.  
    18.                         <span class="keyword">if</span> (<span class="predefined">strpos</span>(<span class="local-variable">$known_domaines</span>, <span class="string"><span class="delimiter">"</span><span class="content"> .</span><span class="local-variable">$domain</span><span class="content"> </span><span class="delimiter">"</span></span>) !== <span class="predefined-constant">false</span>) {
    19.                             <span class="local-variable">$is_known_host</span> = <span class="predefined-constant">true</span>;
    20.                         }
    21.                 }
    22.         }
    23. </span>

    Télécharger

    Cordialement
    Equipement

  • Merge commit ’67351924fa91dea4339109100a4c0689f006581f’

    30 mars 2017, par Clément Bœsch
    Merge commit ’67351924fa91dea4339109100a4c0689f006581f’
    

    * commit ’67351924fa91dea4339109100a4c0689f006581f’ :
    Drop unreachable break and return statements

    Merged-by : Clément Bœsch <cboesch@gopro.com>

    • [DH] libavcodec/bmvvideo.c
    • [DH] libavcodec/hevc_sei.c
    • [DH] libavcodec/sanm.c
    • [DH] libavformat/rtpproto.c
    • [DH] libavformat/rtspdec.c
    • [DH] libavformat/smush.c
    • [DH] libavutil/opt.c
  • Is it possible to merge multiple FFMPEG commands (cuts, slow down, watermark) into one in order to increase performance ?

    14 novembre 2022, par Nectarie PF

    I wrote a small piece of software in PHP, using FFMPEG commands via shell exec. The final purpose is to take a 7 seconds MP4 file from a GoPro and transform it in order to achieve a sort of boomerang effect :

    &#xA;

      &#xA;
    • crop the video to 1080 width/height
    • &#xA;

    &#xA;

    ffmpeg -i ./files/video_small/$latestVideo -filter:v \"crop=1080:1080:420:0\" ./files/video_small/outcrop_$cod.mp4 2>&amp;1");&#xA;

    &#xA;

      &#xA;
    • first second should run normally
    • &#xA;

    &#xA;

    ffmpeg.exe -t 1 -i ./files/video_small/outcrop_$cod.mp4 ./files/video_small/out1_$cod.mp4 2>&amp;1");&#xA;

    &#xA;

      &#xA;
    • the next two seconds will run at slow motion with a 2x factor
    • &#xA;

    &#xA;

    ffmpeg.exe -ss 00:00:01 -t 2 -i ./files/video_small/outcrop_$cod.mp4 -filter_complex \"[0:v]setpts=2*PTS[v]\" -map \"[v]\" ./files/video_small/out2_$cod.mp4 2>&amp;1");&#xA;

    &#xA;

      &#xA;
    • the next second will speed up at 4x factor
    • &#xA;

    &#xA;

    ffmpeg.exe -ss 00:00:03 -t 1 -i ./files/video_small/outcrop_$cod.mp4 -filter_complex \"[0:v]setpts=0.25*PTS[v]\" -map \"[v]\" ./files/video_small/out3_$cod.mp4 2>&amp;1");&#xA;

    &#xA;

      &#xA;
    • the next 2 seconds again slow motion
    • &#xA;

    &#xA;

    ffmpeg.exe -ss 00:00:04 -t 2 -i ./files/video_small/outcrop_$cod.mp4 -filter_complex \"[0:v]setpts=2*PTS[v]\" -map \"[v]\" ./files/video_small/out4_$cod.mp4 2>&amp;1");&#xA;

    &#xA;

      &#xA;
    • final second again normal speed
    • &#xA;

    &#xA;

    ffmpeg.exe -ss 00:00:06 -i ./files/video_small/outcrop_$cod.mp4 ./files/video_small/out5_$cod.mp4 2>&amp;1");&#xA;

    &#xA;

      &#xA;
    • concatenate the above parts to achieve the modified clip
    • &#xA;

    &#xA;

    ffmpeg.exe -f concat -i ./files/video_small/files_$cod.txt -c copy  ./files/video_small/output1_$cod.mp4 2>&amp;1");&#xA;

    &#xA;

      &#xA;
    • then append the resulting clip in reverse
    • &#xA;

    &#xA;

    ffmpeg -i ./files/video_small/output1_$cod.mp4 -filter_complex \"[0:v]reverse,fifo[r];[0:v][r] concat=n=2:v=1 [v]\" -map \"[v]\" ./files/video_small/output2_$cod.mp4 2>&amp;1");&#xA;

    &#xA;

      &#xA;
    • add watermark
    • &#xA;

    &#xA;

    ffmpeg -i ./files/video_small/output2_$cod.mp4 -i ./files/watermark-video1080.png -filter_complex \"[0:v][1:v]overlay=(W-w)/2:10[outv]\" -map [outv] -c:v libx264 -crf 22 -preset veryfast ./files/video_small/output3_$cod.mp4 2>&amp;1");&#xA;

    &#xA;

      &#xA;
    • add audio (we can discard the original audio in any of the above steps)
    • &#xA;

    &#xA;

    ffmpeg -i ./files/video_small/output3_$cod.mp4 -i ./files/video_small/sound-hip-hop.mp3 -map 0 -map 1:a -c:v copy -shortest ./files/video_small/output_final_$latestVideo 2>&amp;1");&#xA;

    &#xA;

    Right now it runs ok, but I have a problem with performance, the whole process lasts about 50 seconds on my 8th gen i7.

    &#xA;

    I am very new to the capabilities of ffmpeg and I was wondering if any of the below commands can be optimized or if any of the steps can be merged into one, as I can see the syntax is quite powerful.

    &#xA;

    Thanks !

    &#xA;

    I was expecting this to run a little bit faster, ideally half the time it takes right now.&#xA;As far as I have observed, the longest part is appending the resulting clip in reverse, perhaps I am adding something too heavy and unnecessary in the reverse filter.

    &#xA;