Recherche avancée

Médias (1)

Mot : - Tags -/Rennes

Autres articles (43)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

Sur d’autres sites (10158)

  • Evolution #3973 : Brancher inc/distant recuperer_url() sur une librairie récente

    20 février 2019, par Eric Camus

    Bonjour,
    Suite à un changement de machine pour nos SPIP (de WIMP vers LAMP (centos)) de nombreux flux RSS ne fonctionnaient plus, la cause : la fonction ’recuperer_url’ !!!.
    J’ai donc réécrit le corps de cette fonction avec la biblio PHP CURL a partir du code dans SPIP 3.2.0 (je sais que je suis en retard d’une version).
    Je vous le livre comme je viens de le finir après un léger debug.

    1. <span class="CodeRay"><span class="keyword">function</span> <span class="function">recuperer_url</span>(<span class="local-variable">$url</span>, <span class="local-variable">$options</span> = <span class="predefined">array</span>()) {
    2.     <span class="local-variable">$default</span> = <span class="predefined">array</span>(
    3.         <span class="string"><span class="delimiter">'</span><span class="content">transcoder</span><span class="delimiter">'</span></span> => <span class="predefined-constant">false</span>,
    4.         <span class="string"><span class="delimiter">'</span><span class="content">methode</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="content">GET</span><span class="delimiter">'</span></span>,
    5.         <span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span> => <span class="predefined-constant">null</span>,
    6.         <span class="string"><span class="delimiter">'</span><span class="content">datas</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    7.         <span class="string"><span class="delimiter">'</span><span class="content">boundary</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    8.         <span class="string"><span class="delimiter">'</span><span class="content">refuser_gz</span><span class="delimiter">'</span></span> => <span class="predefined-constant">false</span>,
    9.         <span class="string"><span class="delimiter">'</span><span class="content">if_modified_since</span><span class="delimiter">'</span></span> => <span class="integer">0</span>,
    10.         <span class="string"><span class="delimiter">'</span><span class="content">uri_referer</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    11.         <span class="string"><span class="delimiter">'</span><span class="content">file</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    12.         <span class="string"><span class="delimiter">'</span><span class="content">follow_location</span><span class="delimiter">'</span></span> => <span class="integer">10</span>,
    13.         <span class="string"><span class="delimiter">'</span><span class="content">version_http</span><span class="delimiter">'</span></span> => _INC_DISTANT_VERSION_HTTP,
    14.     );
    15.     <span class="local-variable">$options</span> = <span class="predefined">array_merge</span>(<span class="local-variable">$default</span>, <span class="local-variable">$options</span>);
    16.     <span class="comment">// copier directement dans un fichier ?</span>
    17.     <span class="local-variable">$copy</span> = <span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">file</span><span class="delimiter">'</span></span>];
    18.  
    19.     <span class="keyword">if</span> (<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">methode</span><span class="delimiter">'</span></span>] == <span class="string"><span class="delimiter">'</span><span class="content">HEAD</span><span class="delimiter">'</span></span>) {
    20.         <span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span>] = <span class="integer">0</span>;
    21.     }
    22.     <span class="keyword">if</span> (<span class="predefined">is_null</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span>])) {
    23.         <span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span>] = <span class="local-variable">$copy</span> ? _COPIE_LOCALE_MAX_SIZE : _INC_DISTANT_MAX_SIZE;
    24.     }
    25.  
    26.     <span class="comment">// Accepter les URLs au format feed:// ou qui ont oublie le http:// ou les urls relatives au protocole</span>
    27.     <span class="local-variable">$url</span> = <span class="predefined">preg_replace</span>(<span class="string"><span class="delimiter">'</span><span class="content">,^feed://,i</span><span class="delimiter">'</span></span>, <span class="string"><span class="delimiter">'</span><span class="content">http://</span><span class="delimiter">'</span></span>, <span class="local-variable">$url</span>);
    28.     <span class="keyword">if</span> (!tester_url_absolue(<span class="local-variable">$url</span>)) {
    29.         <span class="local-variable">$url</span> = <span class="string"><span class="delimiter">'</span><span class="content">http://</span><span class="delimiter">'</span></span> . <span class="local-variable">$url</span>;
    30.     } <span class="keyword">elseif</span> (<span class="predefined">strncmp</span>(<span class="local-variable">$url</span>, <span class="string"><span class="delimiter">'</span><span class="content">//</span><span class="delimiter">'</span></span>, <span class="integer">2</span>) == <span class="integer">0</span>) {
    31.         <span class="local-variable">$url</span> = <span class="string"><span class="delimiter">'</span><span class="content">http:</span><span class="delimiter">'</span></span> . <span class="local-variable">$url</span>;
    32.     }
    33.  
    34.     <span class="local-variable">$url</span> = url_to_ascii(<span class="local-variable">$url</span>);
    35.  
    36.     <span class="local-variable">$result</span> = <span class="predefined">array</span>(
    37.         <span class="string"><span class="delimiter">'</span><span class="content">status</span><span class="delimiter">'</span></span> => <span class="integer">0</span>,
    38.         <span class="string"><span class="delimiter">'</span><span class="content">headers</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    39.         <span class="string"><span class="delimiter">'</span><span class="content">page</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    40.         <span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span> => <span class="integer">0</span>,
    41.         <span class="string"><span class="delimiter">'</span><span class="content">last_modified</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    42.         <span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span> => <span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>,
    43.         <span class="string"><span class="delimiter">'</span><span class="content">url</span><span class="delimiter">'</span></span> => <span class="local-variable">$url</span>
    44.     );
    45.  
    46.     <span class="local-variable">$pCurl</span>=curl_init(<span class="local-variable">$url</span>);
    47.     curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_HTTP_VERSION</span>,<span class="constant">CURL_HTTP_VERSION_1_1</span>);
    48.     curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_SSL_VERIFYPEER</span>,<span class="predefined-constant">false</span>);
    49.     curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_RETURNTRANSFER</span>,<span class="predefined-constant">true</span>);
    50.     curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_FOLLOWLOCATION</span>,<span class="predefined-constant">true</span>);
    51.     curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_TIMEOUT</span>,<span class="integer">30</span>);  <span class="comment">// timeout 30s</span>
    52.     <span class="keyword">if</span> (!<span class="predefined">empty</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">datas</span><span class="delimiter">'</span></span>])) {  <span class="comment">// des datas</span>
    53.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_POST</span>,<span class="predefined-constant">true</span>);
    54.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_SAFE_UPLOAD</span>,<span class="predefined-constant">true</span>);
    55.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_POSTFIELDS</span>,<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">datas</span><span class="delimiter">'</span></span>]);
    56.         <span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">methode</span><span class="delimiter">'</span></span>]=<span class="string"><span class="delimiter">'</span><span class="content">POST</span><span class="delimiter">'</span></span>;
    57.     }
    58.     <span class="keyword">if</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">methode</span><span class="delimiter">'</span></span>]==<span class="string"><span class="delimiter">'</span><span class="content">HEAD</span><span class="delimiter">'</span></span>) {
    59.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_NOBODY</span>,<span class="predefined-constant">true</span>);
    60.         <span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span>]=<span class="integer">0</span>;  <span class="comment">// pas de taille</span>
    61.         <span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">if_modified_since</span><span class="delimiter">'</span></span>]=<span class="integer">0</span>;  <span class="comment">// pas de date de modif</span>
    62.         <span class="local-variable">$copy</span>=<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>;  <span class="comment">// pas de copie dans fichier</span>
    63.     }
    64.     <span class="keyword">if</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">if_modified_since</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    65.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_TIMEVALUE</span>,<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">if_modified_since</span><span class="delimiter">'</span></span>]);
    66.     }
    67.     <span class="keyword">if</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    68.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_RANGE</span>,<span class="string"><span class="delimiter">'</span><span class="content">0-</span><span class="delimiter">'</span></span>.<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">taille_max</span><span class="delimiter">'</span></span>]);
    69.     }
    70.     <span class="keyword">if</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">uri_referer</span><span class="delimiter">'</span></span>]) {
    71.         curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_REFERER</span>,<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">uri_referer</span><span class="delimiter">'</span></span>]);
    72.     }
    73.     <span class="local-variable">$opt_header</span>=<span class="predefined-constant">true</span>;
    74.     <span class="local-variable">$fheader</span>=<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>;  <span class="comment">// nom du fichier contenant le header</span>
    75.     <span class="keyword">if</span>(<span class="local-variable">$copy</span>) {
    76.         <span class="local-variable">$fc</span>=<span class="predefined">fopen</span>(<span class="local-variable">$copy</span>,<span class="string"><span class="delimiter">'</span><span class="content">w</span><span class="delimiter">'</span></span>);
    77.         <span class="keyword">if</span>(<span class="local-variable">$fc</span>) {
    78.             <span class="local-variable">$fheader</span>=_DIR_TMP.<span class="predefined">md5</span>(<span class="local-variable">$copy</span>).<span class="string"><span class="delimiter">'</span><span class="content">_head.txt</span><span class="delimiter">'</span></span>;
    79.             <span class="local-variable">$fh</span>=<span class="predefined">fopen</span>(<span class="local-variable">$fheader</span>,<span class="string"><span class="delimiter">'</span><span class="content">w</span><span class="delimiter">'</span></span>);
    80.             <span class="keyword">if</span>(<span class="local-variable">$fh</span>) {
    81.                 curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_FILE</span>,<span class="local-variable">$fc</span>);
    82.                 curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_WRITEHEADER</span>,<span class="local-variable">$fh</span>);
    83.                 <span class="local-variable">$opt_header</span>=<span class="predefined-constant">false</span>;
    84.             }
    85.             <span class="keyword">else</span> {
    86.                 <span class="predefined">fclose</span>(<span class="local-variable">$fc</span>);
    87.             }
    88.         }
    89.     }
    90.     curl_setopt(<span class="local-variable">$pCurl</span>,<span class="constant">CURLOPT_HEADER</span>,<span class="local-variable">$opt_header</span>);
    91.     <span class="local-variable">$cont</span>=curl_exec(<span class="local-variable">$pCurl</span>);
    92.     <span class="local-variable">$info</span>=curl_getinfo(<span class="local-variable">$pCurl</span>);
    93.     curl_close(<span class="local-variable">$pCurl</span>);  <span class="comment">// fermer curl</span>
    94.     <span class="keyword">if</span>(<span class="local-variable">$fc</span>) {
    95.         <span class="predefined">fclose</span>(<span class="local-variable">$fc</span>);  <span class="comment">// fermer fichier</span>
    96.         <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">file</span><span class="delimiter">'</span></span>]=<span class="local-variable">$copy</span>;
    97.     }
    98.     <span class="keyword">if</span>(<span class="local-variable">$fh</span>) {
    99.         <span class="predefined">fclose</span>(<span class="local-variable">$fh</span>);
    100.     }
    101.     <span class="keyword">if</span>(<span class="local-variable">$cont</span>===<span class="predefined-constant">false</span>) {
    102.         spip_log(<span class="string"><span class="delimiter">'</span><span class="content">ECHEC CURL </span><span class="delimiter">'</span></span>.<span class="local-variable">$url</span>,_LOG_ERREUR);
    103.         <span class="keyword">if</span>(<span class="predefined">file_exists</span>(<span class="local-variable">$copy</span>)) <span class="predefined">unlink</span>(<span class="local-variable">$copy</span>);  <span class="comment">// suppr fichier sur erreur</span>
    104.         <span class="keyword">if</span>(<span class="predefined">file_exists</span>(<span class="local-variable">$fheader</span>)) <span class="predefined">unlink</span>(<span class="local-variable">$fheader</span>);
    105.         <span class="keyword">return</span> <span class="predefined-constant">false</span>;
    106.     }
    107.     <span class="comment">// on range le tout dans la var $result</span>
    108.     <span class="local-variable">$body</span>=<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>;
    109.     <span class="local-variable">$head</span>=<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>;
    110.     <span class="keyword">if</span>(<span class="local-variable">$cont</span>!==<span class="predefined-constant">true</span>) {  <span class="comment">// cas de demande par fichier</span>
    111.         <span class="keyword">if</span>(<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">methode</span><span class="delimiter">'</span></span>]==<span class="string"><span class="delimiter">'</span><span class="content">HEAD</span><span class="delimiter">'</span></span>) {
    112.             <span class="local-variable">$head</span>=<span class="local-variable">$cont</span>;
    113.         }
    114.         <span class="keyword">else</span> {
    115.             <span class="keyword">if</span>(<span class="predefined">isset</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>]) <span class="keyword">and</span> <span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    116.                 <span class="local-variable">$body</span>=<span class="predefined">substr</span>(<span class="local-variable">$cont</span>,-<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>]);
    117.                 <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span>]=<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>];
    118.             }
    119.             <span class="keyword">elseif</span>(<span class="predefined">isset</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>]) <span class="keyword">and</span> <span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    120.                 <span class="local-variable">$body</span>=<span class="predefined">substr</span>(<span class="local-variable">$cont</span>,-<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>]);
    121.                 <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span>]=<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>];
    122.             }
    123.             <span class="keyword">if</span>(<span class="predefined">isset</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">header_size</span><span class="delimiter">'</span></span>]) <span class="keyword">and</span> <span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">header_size</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    124.                 <span class="local-variable">$head</span>=<span class="predefined">substr</span>(<span class="local-variable">$cont</span>,<span class="integer">0</span>,<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">header_size</span><span class="delimiter">'</span></span>]);
    125.                 <span class="keyword">if</span>(<span class="local-variable">$body</span>==<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>) {  <span class="comment">// cas ou download_content_length=-1 !!!!!!</span>
    126.                     <span class="local-variable">$body</span>=<span class="predefined">substr</span>(<span class="local-variable">$cont</span>,<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">header_size</span><span class="delimiter">'</span></span>]);
    127.                     <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span>]=<span class="predefined">strlen</span>(<span class="local-variable">$body</span>);  <span class="comment">// pare absence</span>
    128.                 }
    129.             }
    130.         }
    131.     }
    132.     <span class="keyword">if</span>(<span class="local-variable">$fheader</span> <span class="keyword">and</span> <span class="predefined">file_exists</span>(<span class="local-variable">$fheader</span>)) {  <span class="comment">// si un fichier de header est fait</span>
    133.         <span class="local-variable">$head</span>=<span class="predefined">file_get_contents</span>(<span class="local-variable">$fheader</span>);
    134.         <span class="predefined">unlink</span>(<span class="local-variable">$fheader</span>);
    135.     }
    136.     <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">status</span><span class="delimiter">'</span></span>]=<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">http_code</span><span class="delimiter">'</span></span>];
    137.     <span class="keyword">if</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">http_code</span><span class="delimiter">'</span></span>]==<span class="integer">206</span>) <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">status</span><span class="delimiter">'</span></span>]=<span class="integer">200</span>;  <span class="comment">// SPIP refuse les partial content alors qu'il les demande</span>
    138.     <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">headers</span><span class="delimiter">'</span></span>]=<span class="local-variable">$head</span>;
    139.     <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">page</span><span class="delimiter">'</span></span>]=<span class="local-variable">$body</span>;
    140.     <span class="keyword">if</span>(<span class="predefined">isset</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>]) <span class="keyword">and</span> <span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    141.         <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span>]=<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">download_content_length</span><span class="delimiter">'</span></span>];
    142.     }
    143.     <span class="keyword">elseif</span>(<span class="predefined">isset</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>]) <span class="keyword">and</span> <span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>]><span class="integer">0</span>) {
    144.         <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span>]=<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">size_download</span><span class="delimiter">'</span></span>];
    145.     }
    146.     <span class="keyword">if</span>(<span class="predefined">isset</span>(<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">url</span><span class="delimiter">'</span></span>]) <span class="keyword">and</span> <span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">url</span><span class="delimiter">'</span></span>]!=<span class="local-variable">$url</span>) <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">location</span><span class="delimiter">'</span></span>]=<span class="local-variable">$info</span>[<span class="string"><span class="delimiter">'</span><span class="content">url</span><span class="delimiter">'</span></span>];
    147.     <span class="keyword">if</span>(<span class="local-variable">$head</span>) {  <span class="comment">// analyse de head pour info</span>
    148.         <span class="local-variable">$trouve</span>=<span class="predefined">array</span>(<span class="string"><span class="delimiter">'</span><span class="content">Content-Length</span><span class="delimiter">'</span></span>=><span class="string"><span class="delimiter">'</span><span class="content">length</span><span class="delimiter">'</span></span>,  <span class="comment">// texte avant : => cle du $result</span>
    149.                      <span class="string"><span class="delimiter">'</span><span class="content">Last-Modified</span><span class="delimiter">'</span></span>=><span class="string"><span class="delimiter">'</span><span class="content">last_modified</span><span class="delimiter">'</span></span>,
    150.                      <span class="string"><span class="delimiter">'</span><span class="content">Accept-Ranges</span><span class="delimiter">'</span></span>=><span class="string"><span class="delimiter">'</span><span class="content">range</span><span class="delimiter">'</span></span>);
    151.         <span class="local-variable">$liste</span>=<span class="predefined">preg_split</span>(<span class="string"><span class="delimiter">'</span><span class="content">/[</span><span class="content">\r</span><span class="content">\n</span><span class="content">]+/</span><span class="delimiter">'</span></span>,<span class="local-variable">$head</span>,-<span class="integer">1</span>,<span class="constant">PREG_SPLIT_NO_EMPTY</span>);
    152.         <span class="keyword">if</span>(<span class="predefined">is_array</span>(<span class="local-variable">$liste</span>)) {
    153.             <span class="local-variable">$liste</span>=<span class="predefined">array_reverse</span>(<span class="local-variable">$liste</span>);
    154.             <span class="keyword">foreach</span>(<span class="local-variable">$liste</span> <span class="keyword">as</span> <span class="local-variable">$l</span>) {  <span class="comment">// premier trouver donc dernier dans le head</span>
    155.                 <span class="local-variable">$lt</span>=<span class="predefined">trim</span>(<span class="local-variable">$l</span>);
    156.                 <span class="keyword">if</span>(<span class="predefined">strlen</span>(<span class="local-variable">$lt</span>)><span class="integer">5</span> <span class="keyword">and</span> <span class="predefined">substr</span>(<span class="local-variable">$lt</span>,<span class="integer">0</span>,<span class="integer">4</span>)==<span class="string"><span class="delimiter">'</span><span class="content">HTTP</span><span class="delimiter">'</span></span>) <span class="keyword">break</span>;  <span class="comment">// on arrete sur derniere entete HTTP ?</span>
    157.                 <span class="local-variable">$item</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">$lt</span>,<span class="integer">2</span>);
    158.                 <span class="keyword">if</span>(<span class="predefined">isset</span>(<span class="local-variable">$item</span>[<span class="integer">0</span>]) <span class="keyword">and</span> <span class="predefined">isset</span>(<span class="local-variable">$trouve</span>[<span class="local-variable">$item</span>[<span class="integer">0</span>]])) {
    159.                     <span class="local-variable">$result</span>[<span class="local-variable">$trouve</span>[<span class="local-variable">$item</span>[<span class="integer">0</span>]]]=<span class="predefined">trim</span>(<span class="local-variable">$item</span>[<span class="integer">1</span>]);
    160.                     <span class="predefined">unset</span>(<span class="local-variable">$trouve</span>[<span class="local-variable">$item</span>[<span class="integer">0</span>]]);  <span class="comment">// plus d'autre a chercher</span>
    161.                 }
    162.             }
    163.         }
    164.         <span class="comment">// cas particuliers</span>
    165.         <span class="keyword">if</span>(<span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">last_modified</span><span class="delimiter">'</span></span>]) {
    166.             <span class="local-variable">$val</span>=<span class="predefined">strtotime</span>(<span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">last_modified</span><span class="delimiter">'</span></span>]);
    167.             <span class="keyword">if</span>(<span class="local-variable">$val</span>===<span class="predefined-constant">false</span>) {
    168.                 <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">last_modified</span><span class="delimiter">'</span></span>]=<span class="string"><span class="delimiter">'</span><span class="delimiter">'</span></span>;
    169.             }
    170.             <span class="keyword">else</span> {
    171.                 <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">last_modified</span><span class="delimiter">'</span></span>]=<span class="local-variable">$val</span>;
    172.             }
    173.         }
    174.     }
    175.  
    176.     <span class="comment">// Faut-il l'importer dans notre charset local ?</span>
    177.     <span class="keyword">if</span> (<span class="local-variable">$options</span>[<span class="string"><span class="delimiter">'</span><span class="content">transcoder</span><span class="delimiter">'</span></span>]) {
    178.         include_spip(<span class="string"><span class="delimiter">'</span><span class="content">inc/charsets</span><span class="delimiter">'</span></span>);
    179.         <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">page</span><span class="delimiter">'</span></span>] = transcoder_page(<span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">page</span><span class="delimiter">'</span></span>], <span class="local-variable">$result</span>[<span class="string"><span class="delimiter">'</span><span class="content">headers</span><span class="delimiter">'</span></span>]);
    180.     }
    181.  
    182.     <span class="keyword">return</span> <span class="local-variable">$result</span>;
    183. }
    184. </span>

    Télécharger

    Normalement, ce code doit être compatible avec l’ancienne fonction, il donne en plus en sortie [’range’] qui permet de savoir si un partial content peut être délivré.
    Il ne prend plus en compte les entrées [’refuser_gz’], [’version_http’] et [’boundary’] et l’entrée [’data’] doit être compatible avec celle de ’curl_setopt : CURLOPT_POSTFIELDS’.
    Si des gens veulent la tester et l’améliorer : bienvenue.

    Petit nota : SPIP laisse le fichier créer dans cette fonction ([’file’]) dans le tmp sans le détruire (version de base idem) : accumulation !

  • build ffmpeg on ubuntu : build nasm fails

    6 février 2019, par Rakka Rage

    trying to build ffmpeg on ubuntu 18.10

    https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

    first install dependencies

    sudo apt-get update -qq &amp;&amp; sudo apt-get -y install \
    autoconf \
    automake \
    build-essential \
    cmake \
    git-core \
    libass-dev \
    libfreetype6-dev \
    libsdl2-dev \
    libtool \
    libva-dev \
    libvdpau-dev \
    libvorbis-dev \
    libxcb1-dev \
    libxcb-shm0-dev \
    libxcb-xfixes0-dev \
    pkg-config \
    texinfo \
    wget \
    zlib1g-dev

    then make dirs

    mkdir -p ~/ffmpeg_sources ~/bin

    then build nasm

    cd ~/ffmpeg_sources &amp;&amp; \
    wget https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.bz2 &amp;&amp; \
    tar xjvf nasm-2.13.03.tar.bz2 &amp;&amp; \
    cd nasm-2.13.03 &amp;&amp; \
    ./autogen.sh &amp;&amp; \
    PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" &amp;&amp; \
    make &amp;&amp; \
    make install

    then error

    --2019-02-04 17:45:17--  https://www.nasm.us/pub/nasm/releasebuilds/2.13.03/nasm-2.13.03.tar.bz2
    Resolving www.nasm.us (www.nasm.us)... 2607:7c80:54:e::136, 198.137.202.136
    Connecting to www.nasm.us (www.nasm.us)|2607:7c80:54:e::136|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 974491 (952K) [application/x-bzip2]
    Saving to: ‘nasm-2.13.03.tar.bz2’

    nasm-2.13.03.tar.bz2          100%[=================================================>] 951.65K  1.51MB/s    in 0.6s    

    2019-02-04 17:45:18 (1.51 MB/s) - ‘nasm-2.13.03.tar.bz2’ saved [974491/974491]

    nasm-2.13.03/
    nasm-2.13.03/AUTHORS
    nasm-2.13.03/TODO
    nasm-2.13.03/headers/
    nasm-2.13.03/headers/c
    nasm-2.13.03/headers/mac
    nasm-2.13.03/headers/perl
    nasm-2.13.03/headers/doc
    nasm-2.13.03/test/
    nasm-2.13.03/test/objtest.asm
    nasm-2.13.03/test/float8.asm
    nasm-2.13.03/test/avx512cd.asm
    nasm-2.13.03/test/br890790_i.asm
    nasm-2.13.03/test/avx.asm
    nasm-2.13.03/test/pushseg.asm
    nasm-2.13.03/test/br3074517.asm
    nasm-2.13.03/test/inc2.asm
    nasm-2.13.03/test/elfso.asm
    nasm-2.13.03/test/br2222615.asm
    nasm-2.13.03/test/local.asm
    nasm-2.13.03/test/time.asm
    nasm-2.13.03/test/smartalign64.asm
    nasm-2.13.03/test/movimm.asm
    nasm-2.13.03/test/elif.asm
    nasm-2.13.03/test/absolute.asm
    nasm-2.13.03/test/nullfile.asm
    nasm-2.13.03/test/test67.asm
    nasm-2.13.03/test/reldef.asm
    nasm-2.13.03/test/jmp64.asm
    nasm-2.13.03/test/addr64x.asm
    nasm-2.13.03/test/weirdpaste.asm
    nasm-2.13.03/test/newrdwr.asm
    nasm-2.13.03/test/gas2nasm.py
    nasm-2.13.03/test/br3104312.asm
    nasm-2.13.03/test/br3041451.asm
    nasm-2.13.03/test/xchg.asm
    nasm-2.13.03/test/movnti.asm
    nasm-2.13.03/test/br3385573.asm
    nasm-2.13.03/test/testdos.asm
    nasm-2.13.03/test/br3005117.asm
    nasm-2.13.03/test/pcrel.asm
    nasm-2.13.03/test/objexe.asm
    nasm-2.13.03/test/immwarn.asm
    nasm-2.13.03/test/smartalign16.asm
    nasm-2.13.03/test/floatx.asm
    nasm-2.13.03/test/pinsr64.asm
    nasm-2.13.03/test/radix.asm
    nasm-2.13.03/test/gotoff64.asm
    nasm-2.13.03/test/elf64so.asm
    nasm-2.13.03/test/smartalign32.asm
    nasm-2.13.03/test/floatize.asm
    nasm-2.13.03/test/lnxhello.asm
    nasm-2.13.03/test/bisect.sh
    nasm-2.13.03/test/fpu.asm
    nasm-2.13.03/test/ptr.asm
    nasm-2.13.03/test/br2496848.asm
    nasm-2.13.03/test/binexe.asm
    nasm-2.13.03/test/gather.asm
    nasm-2.13.03/test/nop.asm
    nasm-2.13.03/test/br560575.asm
    nasm-2.13.03/test/uscore.asm
    nasm-2.13.03/test/struc.asm
    nasm-2.13.03/test/br3026808.asm
    nasm-2.13.03/test/zerobyte.asm
    nasm-2.13.03/test/avx005.asm
    nasm-2.13.03/test/riprel.pl
    nasm-2.13.03/test/iftoken.asm
    nasm-2.13.03/test/times.asm
    nasm-2.13.03/test/ifmacro.asm
    nasm-2.13.03/test/br3392411.asm
    nasm-2.13.03/test/br3392418.asm
    nasm-2.13.03/test/riprel.asm
    nasm-2.13.03/test/align13.asm
    nasm-2.13.03/test/rdpid.asm
    nasm-2.13.03/test/utf.asm
    nasm-2.13.03/test/br3187743.asm
    nasm-2.13.03/test/movd.asm
    nasm-2.13.03/test/floatb.asm
    nasm-2.13.03/test/inc1.asm
    nasm-2.13.03/test/ilog2.asm
    nasm-2.13.03/test/crc32.asm
    nasm-2.13.03/test/org.asm
    nasm-2.13.03/test/popcnt.asm
    nasm-2.13.03/test/ifelse.asm
    nasm-2.13.03/test/andbyte.asm
    nasm-2.13.03/test/bintest.asm
    nasm-2.13.03/test/imm64.asm
    nasm-2.13.03/test/pinsr16.asm
    nasm-2.13.03/test/ppindirect.asm
    nasm-2.13.03/test/Makefile
    nasm-2.13.03/test/br3392252.asm
    nasm-2.13.03/test/elftest64.c
    nasm-2.13.03/test/hexfp.asm
    nasm-2.13.03/test/alonesym-obj.asm
    nasm-2.13.03/test/br3092924.asm
    nasm-2.13.03/test/br3392442.asm
    nasm-2.13.03/test/loopoffs.asm
    nasm-2.13.03/test/vex.asm
    nasm-2.13.03/test/bcd.asm
    nasm-2.13.03/test/iftoken.pl
    nasm-2.13.03/test/br3189064.asm
    nasm-2.13.03/test/br3392439.asm
    nasm-2.13.03/test/cofftest.c
    nasm-2.13.03/test/floatexp.asm
    nasm-2.13.03/test/mpx-64.asm
    nasm-2.13.03/test/elftest.asm
    nasm-2.13.03/test/avx512pf.asm
    nasm-2.13.03/test/xmm0.asm
    nasm-2.13.03/test/br3392396.asm
    nasm-2.13.03/test/ifenv.asm
    nasm-2.13.03/test/insnlbl.asm
    nasm-2.13.03/test/imm.asm
    nasm-2.13.03/test/performtest.pl
    nasm-2.13.03/test/br2148476.asm
    nasm-2.13.03/test/imul.asm
    nasm-2.13.03/test/br890790.asm
    nasm-2.13.03/test/perf/
    nasm-2.13.03/test/perf/macro.pl
    nasm-2.13.03/test/perf/label.pl
    nasm-2.13.03/test/perf/token.pl
    nasm-2.13.03/test/br3392259.asm
    nasm-2.13.03/test/br3392363.asm
    nasm-2.13.03/test/macroerr.asm
    nasm-2.13.03/test/br560873.asm
    nasm-2.13.03/test/sreg.asm
    nasm-2.13.03/test/br3200749.asm
    nasm-2.13.03/test/xcrypt.asm
    nasm-2.13.03/test/br3109604.asm
    nasm-2.13.03/test/pragma.asm
    nasm-2.13.03/test/objlink.c
    nasm-2.13.03/test/vaesenc.asm
    nasm-2.13.03/test/align13s.asm
    nasm-2.13.03/test/br2030823.asm
    nasm-2.13.03/test/imacro.asm
    nasm-2.13.03/test/timesneg.asm
    nasm-2.13.03/test/macroerr.inc
    nasm-2.13.03/test/vgather.asm
    nasm-2.13.03/test/elftest.c
    nasm-2.13.03/test/floattest.asm
    nasm-2.13.03/test/lar_lsl.asm
    nasm-2.13.03/test/expimp.asm
    nasm-2.13.03/test/testnos3.asm
    nasm-2.13.03/test/r13.asm
    nasm-2.13.03/test/splitea.asm
    nasm-2.13.03/test/mpx.asm
    nasm-2.13.03/test/sha.asm
    nasm-2.13.03/test/fwdopt.asm
    nasm-2.13.03/test/strlen.asm
    nasm-2.13.03/test/a32offs.asm
    nasm-2.13.03/test/vmread.asm
    nasm-2.13.03/test/cv8struc.asm
    nasm-2.13.03/test/aoutso.asm
    nasm-2.13.03/test/relocs.asm
    nasm-2.13.03/test/_version.asm
    nasm-2.13.03/test/br1879590.asm
    nasm-2.13.03/test/tmap.nas
    nasm-2.13.03/test/hle.asm
    nasm-2.13.03/test/br2003451.asm
    nasm-2.13.03/test/float.asm
    nasm-2.13.03/test/mmxsize.asm
    nasm-2.13.03/test/far64.asm
    nasm-2.13.03/test/new
    nasm-2.13.03/test/movd64.asm
    nasm-2.13.03/test/incbin.asm
    nasm-2.13.03/test/inctest.asm
    nasm-2.13.03/test/cofftest.asm
    nasm-2.13.03/test/avx512f.asm
    nasm-2.13.03/test/nasmformat.asm
    nasm-2.13.03/test/prefix66.asm
    nasm-2.13.03/test/paste.asm
    nasm-2.13.03/test/br978756.asm
    nasm-2.13.03/test/br3028880.asm
    nasm-2.13.03/test/optimization.asm
    nasm-2.13.03/test/aouttest.asm
    nasm-2.13.03/test/macro-defaults.asm
    nasm-2.13.03/test/pinsr32.asm
    nasm-2.13.03/test/br3066383.asm
    nasm-2.13.03/test/_file_.asm
    nasm-2.13.03/test/invlpga.asm
    nasm-2.13.03/test/incbin.data
    nasm-2.13.03/test/sha-64.asm
    nasm-2.13.03/test/multisection.asm
    nasm-2.13.03/test/avx2.asm
    nasm-2.13.03/test/avx512er.asm
    nasm-2.13.03/test/dtbcd.asm
    nasm-2.13.03/test/pextrw.asm
    nasm-2.13.03/test/lwp.asm
    nasm-2.13.03/test/br3174983.asm
    nasm-2.13.03/test/changed.asm
    nasm-2.13.03/test/larlsl.asm
    nasm-2.13.03/test/riprel2.asm
    nasm-2.13.03/test/fwdoptpp.asm
    nasm-2.13.03/test/br3058845.asm
    nasm-2.13.03/test/aouttest.c
    nasm-2.13.03/test/br3392392.asm
    nasm-2.13.03/Makefile.in
    nasm-2.13.03/README
    nasm-2.13.03/common/
    nasm-2.13.03/common/common.c
    nasm-2.13.03/autogen.sh
    nasm-2.13.03/version.sed
    nasm-2.13.03/version.pl
    nasm-2.13.03/include/
    nasm-2.13.03/include/insns.h
    nasm-2.13.03/include/hashtbl.h
    nasm-2.13.03/include/error.h
    nasm-2.13.03/include/perfhash.h
    nasm-2.13.03/include/rdoff.h
    nasm-2.13.03/include/nasm.h
    nasm-2.13.03/include/nasmint.h
    nasm-2.13.03/include/ver.h
    nasm-2.13.03/include/raa.h
    nasm-2.13.03/include/md5.h
    nasm-2.13.03/include/opflags.h
    nasm-2.13.03/include/iflag.h
    nasm-2.13.03/include/tables.h
    nasm-2.13.03/include/disp8.h
    nasm-2.13.03/include/rbtree.h
    nasm-2.13.03/include/labels.h
    nasm-2.13.03/include/compiler.h
    nasm-2.13.03/include/strlist.h
    nasm-2.13.03/include/nasmlib.h
    nasm-2.13.03/include/saa.h
    nasm-2.13.03/contrib/
    nasm-2.13.03/contrib/VSrules/
    nasm-2.13.03/contrib/VSrules/nasm.README
    nasm-2.13.03/contrib/VSrules/nasm.rules
    nasm-2.13.03/contrib/MSVC6.txt
    nasm-2.13.03/SubmittingPatches
    nasm-2.13.03/stdlib/
    nasm-2.13.03/stdlib/strlcpy.c
    nasm-2.13.03/stdlib/vsnprintf.c
    nasm-2.13.03/stdlib/snprintf.c
    nasm-2.13.03/stdlib/strnlen.c
    nasm-2.13.03/disasm/
    nasm-2.13.03/disasm/sync.c
    nasm-2.13.03/disasm/disasm.h
    nasm-2.13.03/disasm/ndisasm.c
    nasm-2.13.03/disasm/sync.h
    nasm-2.13.03/disasm/disasm.c
    nasm-2.13.03/nasmlib/
    nasm-2.13.03/nasmlib/md5c.c
    nasm-2.13.03/nasmlib/rbtree.c
    nasm-2.13.03/nasmlib/badenum.c
    nasm-2.13.03/nasmlib/srcfile.c
    nasm-2.13.03/nasmlib/mmap.c
    nasm-2.13.03/nasmlib/zerobuf.c
    nasm-2.13.03/nasmlib/crc64.c
    nasm-2.13.03/nasmlib/saa.c
    nasm-2.13.03/nasmlib/raa.c
    nasm-2.13.03/nasmlib/bsi.c
    nasm-2.13.03/nasmlib/ver.c
    nasm-2.13.03/nasmlib/perfhash.c
    nasm-2.13.03/nasmlib/strlist.c
    nasm-2.13.03/nasmlib/hashtbl.c
    nasm-2.13.03/nasmlib/filename.c
    nasm-2.13.03/nasmlib/file.c
    nasm-2.13.03/nasmlib/path.c
    nasm-2.13.03/nasmlib/file.h
    nasm-2.13.03/nasmlib/realpath.c
    nasm-2.13.03/nasmlib/string.c
    nasm-2.13.03/nasmlib/readnum.c
    nasm-2.13.03/nasmlib/perfhash.pl
    nasm-2.13.03/nasmlib/ilog2.c
    nasm-2.13.03/nasmlib/malloc.c
    nasm-2.13.03/LICENSE
    nasm-2.13.03/ndisasm.txt
    nasm-2.13.03/misc/
    nasm-2.13.03/misc/c16.mac
    nasm-2.13.03/misc/README
    nasm-2.13.03/misc/proc32.ash
    nasm-2.13.03/misc/nasmstab
    nasm-2.13.03/misc/c32.mac
    nasm-2.13.03/misc/Nindent
    nasm-2.13.03/misc/exebin.mac
    nasm-2.13.03/misc/Doxyfile
    nasm-2.13.03/misc/exebin2.mac
    nasm-2.13.03/misc/magic
    nasm-2.13.03/misc/omfdump.c
    nasm-2.13.03/misc/nasm.sl
    nasm-2.13.03/misc/hints.txt
    nasm-2.13.03/misc/scitech.mac
    nasm-2.13.03/misc/crcgen.c
    nasm-2.13.03/misc/myC32.mac
    nasm-2.13.03/misc/genfma.pl
    nasm-2.13.03/misc/xcrcgen.c
    nasm-2.13.03/misc/fmtinsns.pl
    nasm-2.13.03/misc/pmw.bat
    nasm-2.13.03/CHANGES
    nasm-2.13.03/configure
    nasm-2.13.03/ndisasm.1
    nasm-2.13.03/tools/
    nasm-2.13.03/tools/tag-release
    nasm-2.13.03/tools/syncfiles.pl
    nasm-2.13.03/tools/cleanpatch
    nasm-2.13.03/tools/cleanfile
    nasm-2.13.03/tools/release
    nasm-2.13.03/tools/mkdep.pl
    nasm-2.13.03/INSTALL
    nasm-2.13.03/install-sh
    nasm-2.13.03/Mkfiles/
    nasm-2.13.03/Mkfiles/README
    nasm-2.13.03/Mkfiles/openwcom.mak
    nasm-2.13.03/Mkfiles/msvc.mak
    nasm-2.13.03/version
    nasm-2.13.03/nasm.txt
    nasm-2.13.03/nsis/
    nasm-2.13.03/nsis/version.nsh
    nasm-2.13.03/nsis/nasm-un.ico
    nasm-2.13.03/nsis/NASMMultiUser.nsh
    nasm-2.13.03/nsis/getpearch.pl
    nasm-2.13.03/nsis/nasm.nsi
    nasm-2.13.03/nsis/nasm.ico
    nasm-2.13.03/macros/
    nasm-2.13.03/macros/macros.pl
    nasm-2.13.03/macros/standard.mac
    nasm-2.13.03/macros/ifunc.mac
    nasm-2.13.03/macros/altreg.mac
    nasm-2.13.03/macros/macros.c
    nasm-2.13.03/macros/smartalign.mac
    nasm-2.13.03/macros/fp.mac
    nasm-2.13.03/config/
    nasm-2.13.03/config/watcom.h
    nasm-2.13.03/config/msvc.h
    nasm-2.13.03/config/config.h.in
    nasm-2.13.03/config/unknown.h
    nasm-2.13.03/nasm.1
    nasm-2.13.03/asm/
    nasm-2.13.03/asm/preproc.h
    nasm-2.13.03/asm/preproc-nop.c
    nasm-2.13.03/asm/tokens.h
    nasm-2.13.03/asm/pptok.h
    nasm-2.13.03/asm/stdscan.c
    nasm-2.13.03/asm/nasm.c
    nasm-2.13.03/asm/pragma.c
    nasm-2.13.03/asm/pptok.dat
    nasm-2.13.03/asm/float.h
    nasm-2.13.03/asm/pptok.pl
    nasm-2.13.03/asm/directiv.dat
    nasm-2.13.03/asm/error.c
    nasm-2.13.03/asm/labels.c
    nasm-2.13.03/asm/eval.h
    nasm-2.13.03/asm/directiv.h
    nasm-2.13.03/asm/assemble.h
    nasm-2.13.03/asm/parser.h
    nasm-2.13.03/asm/assemble.c
    nasm-2.13.03/asm/listing.c
    nasm-2.13.03/asm/tokhash.c
    nasm-2.13.03/asm/preproc.c
    nasm-2.13.03/asm/exprdump.c
    nasm-2.13.03/asm/pptok.c
    nasm-2.13.03/asm/parser.c
    nasm-2.13.03/asm/quote.h
    nasm-2.13.03/asm/quote.c
    nasm-2.13.03/asm/segalloc.c
    nasm-2.13.03/asm/tokens.dat
    nasm-2.13.03/asm/float.c
    nasm-2.13.03/asm/exprlib.c
    nasm-2.13.03/asm/phash.pl
    nasm-2.13.03/asm/directiv.c
    nasm-2.13.03/asm/listing.h
    nasm-2.13.03/asm/directbl.c
    nasm-2.13.03/asm/stdscan.h
    nasm-2.13.03/asm/rdstrnum.c
    nasm-2.13.03/asm/pptok.ph
    nasm-2.13.03/asm/tokhash.pl
    nasm-2.13.03/asm/strfunc.c
    nasm-2.13.03/asm/eval.c
    nasm-2.13.03/rdoff/
    nasm-2.13.03/rdoff/rdf2bin.1
    nasm-2.13.03/rdoff/segtab.c
    nasm-2.13.03/rdoff/rdf2srec.1
    nasm-2.13.03/rdoff/rdf2ihx.1
    nasm-2.13.03/rdoff/rdlib.h
    nasm-2.13.03/rdoff/test/
    nasm-2.13.03/rdoff/test/rdftest1.asm
    nasm-2.13.03/rdoff/test/rdtlib.asm
    nasm-2.13.03/rdoff/test/makelib.sh
    nasm-2.13.03/rdoff/test/rdftest2.asm
    nasm-2.13.03/rdoff/test/Makefile
    nasm-2.13.03/rdoff/test/rdfseg.asm
    nasm-2.13.03/rdoff/test/testlib.asm
    nasm-2.13.03/rdoff/test/rdfseg2.asm
    nasm-2.13.03/rdoff/test/rdtmain.asm
    nasm-2.13.03/rdoff/rdf2ith.1
    nasm-2.13.03/rdoff/rdlib.c
    nasm-2.13.03/rdoff/README
    nasm-2.13.03/rdoff/symtab.c
    nasm-2.13.03/rdoff/segtab.h
    nasm-2.13.03/rdoff/hash.c
    nasm-2.13.03/rdoff/ldrdf.1
    nasm-2.13.03/rdoff/rdfutils.h
    nasm-2.13.03/rdoff/rdflib.1
    nasm-2.13.03/rdoff/rdf2com.1
    nasm-2.13.03/rdoff/rdoff.c
    nasm-2.13.03/rdoff/ldsegs.h
    nasm-2.13.03/rdoff/rdfdump.1
    nasm-2.13.03/rdoff/rdlar.c
    nasm-2.13.03/rdoff/rdf2bin.c
    nasm-2.13.03/rdoff/symtab.h
    nasm-2.13.03/rdoff/collectn.c
    nasm-2.13.03/rdoff/rdfload.h
    nasm-2.13.03/rdoff/rdflib.c
    nasm-2.13.03/rdoff/rdfload.c
    nasm-2.13.03/rdoff/ldrdf.c
    nasm-2.13.03/rdoff/rdx.1
    nasm-2.13.03/rdoff/rdx.c
    nasm-2.13.03/rdoff/collectn.h
    nasm-2.13.03/rdoff/rdlar.h
    nasm-2.13.03/rdoff/hash.h
    nasm-2.13.03/rdoff/rdfdump.c
    nasm-2.13.03/rdoff/doc/
    nasm-2.13.03/rdoff/doc/Makefile
    nasm-2.13.03/rdoff/doc/v1-v2.txt
    nasm-2.13.03/rdoff/doc/rdoff.texi
    nasm-2.13.03/version.mac
    nasm-2.13.03/output/
    nasm-2.13.03/output/legacy.c
    nasm-2.13.03/output/elf.h
    nasm-2.13.03/output/outbin.mac
    nasm-2.13.03/output/nulldbg.c
    nasm-2.13.03/output/outform.h
    nasm-2.13.03/output/stabs.h
    nasm-2.13.03/output/outobj.c
    nasm-2.13.03/output/codeview.c
    nasm-2.13.03/output/outform.c
    nasm-2.13.03/output/outlib.c
    nasm-2.13.03/output/outbin.c
    nasm-2.13.03/output/outieee.c
    nasm-2.13.03/output/outas86.mac
    nasm-2.13.03/output/outmacho.mac
    nasm-2.13.03/output/outaout.c
    nasm-2.13.03/output/outaout.mac
    nasm-2.13.03/output/outdbg.c
    nasm-2.13.03/output/outmacho.c
    nasm-2.13.03/output/outrdf2.c
    nasm-2.13.03/output/nullout.c
    nasm-2.13.03/output/outlib.h
    nasm-2.13.03/output/outobj.mac
    nasm-2.13.03/output/outcoff.c
    nasm-2.13.03/output/outcoff.mac
    nasm-2.13.03/output/outrdf2.mac
    nasm-2.13.03/output/outelf.h
    nasm-2.13.03/output/pecoff.h
    nasm-2.13.03/output/outrdf.mac
    nasm-2.13.03/output/dwarf.h
    nasm-2.13.03/output/outelf.c
    nasm-2.13.03/output/outas86.c
    nasm-2.13.03/output/outelf.mac
    nasm-2.13.03/perllib/
    nasm-2.13.03/perllib/random_sv_vectors.ph
    nasm-2.13.03/perllib/gensv.pl
    nasm-2.13.03/perllib/phash.ph
    nasm-2.13.03/perllib/crc64.ph
    nasm-2.13.03/configure.ac
    nasm-2.13.03/aclocal.m4
    nasm-2.13.03/ChangeLog
    nasm-2.13.03/nasm.spec.in
    nasm-2.13.03/x86/
    nasm-2.13.03/x86/insnsi.h
    nasm-2.13.03/x86/regvals.c
    nasm-2.13.03/x86/insnsa.c
    nasm-2.13.03/x86/insns.pl
    nasm-2.13.03/x86/regs.h
    nasm-2.13.03/x86/regflags.c
    nasm-2.13.03/x86/disp8.c
    nasm-2.13.03/x86/regdis.h
    nasm-2.13.03/x86/insnsn.c
    nasm-2.13.03/x86/iflag.c
    nasm-2.13.03/x86/insnsb.c
    nasm-2.13.03/x86/regs.pl
    nasm-2.13.03/x86/regdis.c
    nasm-2.13.03/x86/insns-iflags.ph
    nasm-2.13.03/x86/insnsd.c
    nasm-2.13.03/x86/regs.c
    nasm-2.13.03/x86/iflaggen.h
    nasm-2.13.03/x86/regs.dat
    nasm-2.13.03/x86/insns.dat
    nasm-2.13.03/nasm.spec
    nasm-2.13.03/version.h
    nasm-2.13.03/version.mak
    nasm-2.13.03/nasm.spec.sed
    nasm-2.13.03/doc/
    nasm-2.13.03/doc/Makefile.in
    nasm-2.13.03/doc/nasmdoc.css
    nasm-2.13.03/doc/README
    nasm-2.13.03/doc/findfont.ph
    nasm-2.13.03/doc/pswidth.ph
    nasm-2.13.03/doc/pspdf.pl
    nasm-2.13.03/doc/head.ps
    nasm-2.13.03/doc/rdsrc.pl
    nasm-2.13.03/doc/Makefile
    nasm-2.13.03/doc/ttfmetrics.ph
    nasm-2.13.03/doc/genps.pl
    nasm-2.13.03/doc/inslist.pl
    nasm-2.13.03/doc/opt_var.txt
    nasm-2.13.03/doc/nasmlogo.eps
    nasm-2.13.03/doc/afmmetrics.ph
    nasm-2.13.03/doc/local.css
    nasm-2.13.03/doc/internal.doc
    nasm-2.13.03/doc/changes.src
    nasm-2.13.03/doc/nasmdoc.src
    nasm-2.13.03/doc/psfonts.ph
    nasm-2.13.03/doc/nasmlogw.png
    + autoheader
    + autoconf
    + rm -rf autom4te.cache config.log config.status
    + rm -f Makefile rdoff/Makefile doc/Makefile
    + rm -f config.h.in config.h config/config.h
    checking for gcc... gcc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking how to run the C preprocessor... gcc -E
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking minix/config.h usability... no
    checking minix/config.h presence... no
    checking for minix/config.h... no
    checking whether it is safe to define __EXTENSIONS__... yes
    checking for special C compiler options needed for large files... no
    checking for _FILE_OFFSET_BITS value needed for large files... no
    checking for gcc... (cached) gcc
    checking whether we are using the GNU C compiler... (cached) yes
    checking whether gcc accepts -g... (cached) yes
    checking for gcc option to accept ISO C89... (cached) none needed
    checking for gcc option to accept ISO C99... none needed
    checking for gcc option to accept ISO Standard C... (cached) none needed
    checking whether ln -s works... yes
    checking whether make sets $(MAKE)... yes
    checking for a BSD-compatible install... /usr/bin/install -c
    checking for suffix of library files... a
    checking for an ANSI C-conforming const... yes
    checking for inline... inline
    checking for C/C++ restrict keyword... __restrict
    checking for size_t... yes
    checking whether byte ordering is bigendian... no
    checking if gcc accepts -fwrapv... yes
    checking if gcc accepts -U__STRICT_ANSI__... yes
    checking if gcc accepts -fno-common... yes
    checking for nroff... nroff
    checking for asciidoc... no
    checking for xmlto... no
    configure: WARNING: No asciidoc package found
    configure: WARNING: No xmlto package found
    checking for ar... ar
    checking for ranlib... ranlib
    checking for strip... strip
    checking for ANSI C header files... (cached) yes
    checking for inttypes.h... (cached) yes
    checking for strings.h... (cached) yes
    checking for stdbool.h that conforms to C99... yes
    checking for _Bool... yes
    checking stdnoreturn.h usability... yes
    checking stdnoreturn.h presence... yes
    checking for stdnoreturn.h... yes
    checking io.h usability... no
    checking io.h presence... no
    checking for io.h... no
    checking fcntl.h usability... yes
    checking fcntl.h presence... yes
    checking for fcntl.h... yes
    checking for unistd.h... (cached) yes
    checking sys/param.h usability... yes
    checking sys/param.h presence... yes
    checking for sys/param.h... yes
    checking sys/mman.h usability... yes
    checking sys/mman.h presence... yes
    checking for sys/mman.h... yes
    checking for sys/types.h... (cached) yes
    checking for sys/stat.h... (cached) yes
    checking for strcasecmp... yes
    checking for stricmp... no
    checking for strncasecmp... yes
    checking for strnicmp... no
    checking for strsep... yes
    checking for strnlen... yes
    checking for getuid... yes
    checking for getgid... yes
    checking for realpath... yes
    checking for canonicalize_file_name... yes
    checking for _fullpath... no
    checking for pathconf... yes
    checking for _LARGEFILE_SOURCE value needed for large files... no
    checking for _fseeki64... no
    checking for ftruncate... yes
    checking for _chsize... no
    checking for _chsize_s... no
    checking for fileno... yes
    checking for _fileno... no
    checking for _filelengthi64... no
    checking for stdlib.h... (cached) yes
    checking for unistd.h... (cached) yes
    checking for sys/param.h... (cached) yes
    checking for getpagesize... yes
    checking for working mmap... yes
    checking for getpagesize... (cached) yes
    checking for sysconf... yes
    checking for access... yes
    checking for _access... no
    checking for faccessat... yes
    checking for __builtin_clz... yes
    checking for __builtin_clzl... yes
    checking for __builtin_clzll... yes
    checking for __builtin_expect... yes
    checking for vsnprintf... yes
    checking for _vsnprintf... no
    checking for snprintf... yes
    checking for _snprintf... no
    checking for strlcpy... no
    checking for struct _stati64... no
    checking for struct stat... yes
    checking for stat... yes
    checking for _stati64... no
    checking for fstat... yes
    checking for _fstati64... no
    checking whether strcasecmp is declared... yes
    checking whether stricmp is declared... no
    checking whether strncasecmp is declared... yes
    checking whether strnicmp is declared... no
    checking whether strsep is declared... yes
    checking whether strlcpy is declared... no
    checking whether strnlen is declared... yes
    checking for uintptr_t... yes
    checking if gcc accepts -Werror=attributes... yes
    checking if gcc supports the noreturn function attribute... yes
    checking if gcc supports the returns_nonnull function attribute... yes
    checking if gcc supports the malloc function attribute... yes
    checking if gcc supports the alloc_size function attribute... yes
    checking if gcc supports the format function attribute... yes
    checking if gcc supports the const function attribute... yes
    checking if gcc supports the pure function attribute... yes
    checking if gcc supports the error function attribute... yes
    checking if gcc accepts -W... yes
    checking if gcc accepts -Wall... yes
    checking if gcc accepts -pedantic... yes
    checking if gcc accepts -Werror=unknown-warning-option... no
    checking if gcc accepts -Wpedantic-ms-format... no
    checking if gcc accepts -Wc90-c99-compat... yes
    checking if gcc accepts -Wlong-long... yes
    checking if gcc accepts -Werror=implicit... yes
    checking if gcc accepts -Werror=missing-braces... yes
    checking if gcc accepts -Werror=return-type... yes
    checking if gcc accepts -Werror=trigraphs... yes
    checking if gcc accepts -Werror=pointer-arith... yes
    checking if gcc accepts -Werror=strict-prototypes... no
    checking if gcc accepts -Werror=missing-prototypes... yes
    checking if gcc accepts -Werror=missing-declarations... yes
    checking if gcc accepts -Werror=comment... yes
    checking if gcc accepts -Werror=vla... yes
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating doc/Makefile
    config.status: creating config/config.h
    config.status: executing default-1 commands
    gcc -c -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common -Werror=attributes -W -Wall -pedantic -Wc90-c99-compat -Wno-long-long -Werror=implicit -Werror=missing-braces -Werror=return-type -Werror=trigraphs -Werror=pointer-arith -Werror=missing-prototypes -Werror=missing-declarations -Werror=comment -Werror=vla -DHAVE_CONFIG_H -I. -I. -I./include -I./include -I./x86 -I./x86 -I./asm -I./asm -I./disasm -I./disasm -I./output -I./output -o asm/nasm.o asm/nasm.c
    In file included from ./include/nasm.h:46,
                   from asm/nasm.c:47:
    ./include/nasmlib.h:194:1: error: ‘pure’ attribute on function returning ‘void’ [-Werror=attributes]
    void pure_func seg_init(void);
    ^~~~
    cc1: some warnings being treated as errors
    make: *** [Makefile:75: asm/nasm.o] Error 1

    how can a build this ? disable warnings as errors somehow or ? idk
    please and thanks

  • ffmpeg, v4l, snd_aloop ... sound asyncron (alsa buffer xrun)

    28 janvier 2019, par Tobias

    I’m trying to create a stream that automatically reloads random inputs. I would like to extend this to a database later.

    Each time ffmpeg finishes and starts again, so the input changes, the connection to the rtmp is interrupted briefly causing the whole connection breaks down. I then tried to separate audio and video, to send them to virtual devices and read from there again. Split the stream on virtual devices, reassemble them directly and send them to rtmp. If the input is then exchanged, the sending to the devices interrupts what does not bother the second ffmpeg. As soon as I stop sending to the devices the fps go very slowly (10 - 20 sec) from 25 to 0. Only then does the transmitter ffmpeg break the connection to the rtmp. The script which exchanges the inputs needs only one second. A practical test showed that everything works as desired.

    I can quite comfortably change the input while the second ffmpeg maintains the stream ...

    The joy did not last long. The sound is good 1 sec delayed. But sporadically. Sometimes everything works great. Sometimes the sound is offset.

    I wrote several scripts for this.

    Background :

    1. File is selected by random
    2. Media file is split and written to / dev / video0 (v4l loopback) and alsa default (snd_aloop loopback)
    3. Put the splits together again and stream them to a rtmp server

    Code that selects the input and sends to / dev / video0 and alsa default

    #!/bin/bash

    cat /dev/null > log

    while true;
    do

     WATERMARK="watermark.png";
     dir='/homeXXXXXXXXXX/mix'
     file=`/bin/ls -1 "$dir" | sort --random-sort | head -1`
     DATEI=`readlink --canonicalize "$dir/$file"` # Converts to full path

    if [ -z $DATEI ]
    then
     echo "Keine Datei gefunden" >> log;
    else
     START=$(date +%s);
     echo "Sende $DATEI" >> log;
     ffmpeg -re -y -i "$DATEI" -c:v libx264 -vf "fps=25,scale=640:480,setdar=4:3" -async 1 -pix_fmt yuv420p -preset ultrafast -map 0:0 -f v4l2 -vcodec rawvideo /dev/video0 -f alsa default
    fi

    DOKILL=`cat kill`;
    if [ "$DOKILL" = "1"]
    then
     break;
    fi

    done

    The Output

    ./run.sh
    ffmpeg version 3.2.12-1~deb9u1 Copyright (c) 2000-2018 the FFmpeg developers
     built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
     configuration: --prefix=/usr --extra-version='1~deb9u1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libebur128 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
     libavutil      55. 34.101 / 55. 34.101
     libavcodec     57. 64.101 / 57. 64.101
     libavformat    57. 56.101 / 57. 56.101
     libavdevice    57.  1.100 / 57.  1.100
     libavfilter     6. 65.100 /  6. 65.100
     libavresample   3.  1.  0 /  3.  1.  0
     libswscale      4.  2.100 /  4.  2.100
     libswresample   2.  3.100 /  2.  3.100
     libpostproc    54.  1.100 / 54.  1.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/mix/XXXXXXXXXXXXX.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       title           : XXXXXXXXXXXXXXX

       encoder         : Lavf57.41.100
     Duration: 00:03:53.48, start: 0.000000, bitrate: 2705 kb/s
       Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 2573 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
       Metadata:
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
    Codec AVOption preset (Configuration preset) specified for output file #0 (/dev/video0) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.
    [Parsed_setdar_2 @ 0x5571234fe020] num:den syntax is deprecated, please use num/den or named options instead
    -async is forwarded to lavfi similarly to -af aresample=async=1:min_hard_comp=0.100000:first_pts=0.
    Output #0, v4l2, to '/dev/video0':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       title           : XXXXXXXXXXX

       encoder         : Lavf57.56.101
       Stream #0:0(und): Video: rawvideo (I420 / 0x30323449), yuv420p, 640x480 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc (default)
       Metadata:
         handler_name    : VideoHandler
         encoder         : Lavc57.64.101 rawvideo
    Output #1, alsa, to 'default':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       title           : XXXXXXXXXX

       encoder         : Lavf57.56.101
       Stream #1:0(und): Audio: pcm_s16le, 44100 Hz, stereo, s16, 1411 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
         encoder         : Lavc57.64.101 pcm_s16le
    Stream mapping:
     Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native))
     Stream #0:1 -> #1:0 (aac (native) -> pcm_s16le (native))
    Press [q] to stop, [?] for help
    frame=  736 fps= 24 q=-0.0 Lsize=N/A time=00:00:29.67 bitrate=N/A speed=0.979x    
    video:331200kB audio:5112kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
    Exiting normally, received signal 2.

    The send script

    #!/bin/bash

    IP="XXXXXXXXX";

    ffmpeg -f video4linux2 -i /dev/video0 -f alsa -acodec pcm_s16le -i default -f flv -async 1 -pix_fmt yuv420p -preset ultrafast -vcodec libx264 -r 25 -s 640x260 -acodec aac rtmp://$IP:1935/live/test

    The Output

    ./send_stream.sh
    ffmpeg version 3.2.12-1~deb9u1 Copyright (c) 2000-2018 the FFmpeg developers
     built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
     configuration: --prefix=/usr --extra-version='1~deb9u1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libebur128 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
     libavutil      55. 34.101 / 55. 34.101
     libavcodec     57. 64.101 / 57. 64.101
     libavformat    57. 56.101 / 57. 56.101
     libavdevice    57.  1.100 / 57.  1.100
     libavfilter     6. 65.100 /  6. 65.100
     libavresample   3.  1.  0 /  3.  1.  0
     libswscale      4.  2.100 /  4.  2.100
     libswresample   2.  3.100 /  2.  3.100
     libpostproc    54.  1.100 / 54.  1.100
    Input #0, video4linux2,v4l2, from '/dev/video0':
     Duration: N/A, start: 1548393682.674066, bitrate: 110592 kb/s
       Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 640x480, 110592 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
    Guessed Channel Layout for Input Stream #1.0 : stereo
    Input #1, alsa, from 'default':
     Duration: N/A, start: 1548393682.677901, bitrate: 1536 kb/s
       Stream #1:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
    -async is forwarded to lavfi similarly to -af aresample=async=1:min_hard_comp=0.100000:first_pts=0.
    [libx264 @ 0x55e22cfa4f00] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    [libx264 @ 0x55e22cfa4f00] profile Constrained Baseline, level 2.1
    [libx264 @ 0x55e22cfa4f00] 264 - core 148 r2748 97eaef2 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0
    Output #0, flv, to 'rtmp://XXXXXXXXXXX:1935/live/test':
     Metadata:
       encoder         : Lavf57.56.101
       Stream #0:0: Video: h264 (libx264) ([7][0][0][0] / 0x0007), yuv420p, 640x260, q=-1--1, 25 fps, 1k tbn, 25 tbc
       Metadata:
         encoder         : Lavc57.64.101 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
       Stream #0:1: Audio: aac (LC) ([10][0][0][0] / 0x000A), 48000 Hz, stereo, fltp, 128 kb/s
       Metadata:
         encoder         : Lavc57.64.101 aac
    Stream mapping:
     Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (libx264))
     Stream #1:0 -> #0:1 (pcm_s16le (native) -> aac (native))
    Press [q] to stop, [?] for help
    [alsa @ 0x55e22cf87300] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
    [video4linux2,v4l2 @ 0x55e22cf84fe0] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
    Past duration 0.613319 too large    7344kB time=00:01:05.85 bitrate= 913.5kbits/s speed=1.04x    
    Past duration 0.614372 too large    7644kB time=00:01:08.39 bitrate= 915.6kbits/s speed=1.04x    
    Past duration 0.609749 too large    7834kB time=00:01:10.91 bitrate= 905.0kbits/s speed=1.04x    
    Past duration 0.604362 too large    8038kB time=00:01:12.92 bitrate= 903.0kbits/s speed=1.04x    
    Past duration 0.609489 too large    8070kB time=00:01:13.45 bitrate= 900.1kbits/s speed=1.04x    
    Past duration 0.615013 too large    8094kB time=00:01:13.94 bitrate= 896.8kbits/s speed=1.04x    
    Past duration 0.610893 too large    8179kB time=00:01:14.94 bitrate= 894.0kbits/s speed=1.04x    
    Past duration 0.664711 too large
    Past duration 0.639565 too large    8263kB time=00:01:15.47 bitrate= 896.8kbits/s speed=1.04x    
    Past duration 0.668999 too large    8339kB time=00:01:15.94 bitrate= 899.5kbits/s speed=1.04x    
    Past duration 0.605766 too large
    Past duration 0.633049 too large    8399kB time=00:01:16.48 bitrate= 899.6kbits/s speed=1.04x    
    Past duration 0.674599 too large
    Past duration 0.616035 too large    8451kB time=00:01:16.95 bitrate= 899.7kbits/s speed=1.04x    
    Past duration 0.656136 too large
    Past duration 0.604195 too large
    Past duration 0.601387 too large    8512kB time=00:01:17.46 bitrate= 900.2kbits/s speed=1.04x    
    Past duration 0.621895 too large    8565kB time=00:01:17.95 bitrate= 900.1kbits/s speed=1.04x    
    Past duration 0.670937 too large    8605kB time=00:01:18.46 bitrate= 898.4kbits/s speed=1.04x    
    Past duration 0.604500 too large    8642kB time=00:01:18.99 bitrate= 896.2kbits/s speed=1.04x    
    frame= 1913 fps= 25 q=-1.0 Lsize=    8670kB time=00:01:19.48 bitrate= 893.6kbits/s speed=1.04x    
    video:7290kB audio:1280kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.160292%
    [libx264 @ 0x55e22cfa4f00] frame I:8     Avg QP:18.25  size: 15502
    [libx264 @ 0x55e22cfa4f00] frame P:1905  Avg QP:20.95  size:  3853
    [libx264 @ 0x55e22cfa4f00] mb I  I16..4: 100.0%  0.0%  0.0%
    [libx264 @ 0x55e22cfa4f00] mb P  I16..4:  6.4%  0.0%  0.0%  P16..4: 38.1%  0.0%  0.0%  0.0%  0.0%    skip:55.5%
    [libx264 @ 0x55e22cfa4f00] coded y,uvDC,uvAC intra: 46.0% 30.3% 13.4% inter: 20.1% 9.8% 1.1%
    [libx264 @ 0x55e22cfa4f00] i16 v,h,dc,p: 47% 34% 10%  9%
    [libx264 @ 0x55e22cfa4f00] i8c dc,h,v,p: 45% 28% 22%  5%
    [libx264 @ 0x55e22cfa4f00] kb/s:750.98
    [aac @ 0x55e22cfa62a0] Qavg: 579.067
    Exiting normally, received signal 2.

    First everything is fine and then comes

    Past duration 0.616035 too large    8451kB time=00:01:16.95 bitrate= 899.7kbits/s speed=1.04x    
    Past duration 0.656136 too large
    Past duration 0.604195 too large
    Past duration 0.601387 too large    8512kB time=00:01:17.46 bitrate= 900.2kbits/s speed=1.04x

    And then when that comes, dives in the first window, so in the ffmpeg sends the input :

    Stream mapping:
     Stream #0:0 -> #0:0 (h264 (native) -> rawvideo (native))
     Stream #0:1 -> #1:0 (aac (native) -> pcm_s16le (native))
    Press [q] to stop, [?] for help
    frame=    9 fps=0.0 q=-0.0 size=N/A time=00:00:00.36 bitrate=N/A dup=1 drop=0 spframe=   21 fps= 21 q=-0.0 size=N/A time=00:00:00.84 bitrate=N/A dup=1 drop=0 sp[alsa @ 0x5643b3293160] ALSA buffer xrun.
       Last message repeated 1 times
    frame=   33 fps= 22 q=-0.0 size=N/A time=00:00:01.32 bitrate=N/A dup=1 drop=0 sp[alsa @ 0x5643b3293160] ALSA buffer xrun.
       Last message repeated 1 times
    frame=   46 fps= 23 q=-0.0 size=N/A time=00:00:01.84 bitrate=N/A dup=1 drop=0 spframe=   58 fps= 23 q=-0.0 size=N/A time=00:00:02.32 bitrate=N/A dup=1 drop=0 spframe=   71 fps= 24 q=-0.0 size=N/A time=00:00:02.84 bitrate=N/A dup=1 drop=0 spframe=   83 fps= 24 q=-0.0 size=N/A time=00:00:03.32 bitrate=N/A dup=1 drop=0 sp[alsa @ 0x5643b3293160] ALSA buffer xrun.
    frame=   96 fps= 24 q=-0.0 size=N/A time=00:00:03.84 bitrate=N/A dup=1 drop=0 sp[alsa @ 0x5643b3293160] ALSA buffer xrun.

    The sound is then absolutely unsynchronized ...

    Does anyone have any advice and can help me ?