Recherche avancée

Médias (1)

Mot : - Tags -/Rennes

Autres articles (90)

  • Amélioration de la version de base

    13 septembre 2013

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

  • Configuration spécifique pour PHP5

    4 février 2011, par

    PHP5 est obligatoire, vous pouvez l’installer en suivant ce tutoriel spécifique.
    Il est recommandé dans un premier temps de désactiver le safe_mode, cependant, s’il est correctement configuré et que les binaires nécessaires sont accessibles, MediaSPIP devrait fonctionner correctement avec le safe_mode activé.
    Modules spécifiques
    Il est nécessaire d’installer certains modules PHP spécifiques, via le gestionnaire de paquet de votre distribution ou manuellement : php5-mysql pour la connectivité avec la (...)

  • 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.

Sur d’autres sites (8637)

  • Error in Jquery upload file due to FFMPEG conversion using PHP

    13 mars 2015, par Hamza

    I am using jQuery upload file plugin, and when videos are uploaded, they are converted using FFMPEG. For short sized files everything works perfectly but when I try to upload bigger files, nothing is returned in the response. I thought that this could me max_execution_time issue so I have removed the limit but still it happens, but when I see the folder, the files are converted completely and entered into database so everything seems to work of large files except it doesn’t echo. I tried to remove one FFMPEG conversion statement and convert file to just one size but still the result is same for large files.

    and I see this result enter image description here

    Here is my PHP code

       $default = ini_get('max_execution_time');
       set_time_limit(0);
       $fileName = $_FILES["myfile"]["name"];
       $fileName = str_ireplace(' ', '_', $fileName);                
       $fn = $_FILES["myfile"]["name"];
       $i = 1;
       $actual_name = pathinfo($fileName,PATHINFO_FILENAME);
       $original_name = $actual_name;
       $extension = strtolower (pathinfo($fileName, PATHINFO_EXTENSION));      
       while(file_exists($output_dir.$fileName))
       {          
          $actual_name = (string)$original_name.$i;
          $fileName = $actual_name.".".$extension;
          $filetoconvert = $actual_name.".mp4";
          $filetoconvertSD=$actual_name."SD.mp4";
          $i++;
       }
       //echo $fileName;
           move_uploaded_file($_FILES["myfile"]["tmp_name"],$output_dir.$fileName);

          $url = $output_dir1.$fileName;
          $outputnameSD="";
          $time="";
          $del_url = $output_dir.$fileName;


             $i = 1;
             while(file_exists($output_dir.$filetoconvert))
             {          
                 $actual_name = (string)$original_name.$i;
                 $fileName = $actual_name.".mp4";
                 $filetoconvert = $actual_name.".mp4";
                 $filetoconvertSD=$actual_name."SD.mp4";
                 $i++;
             }
             $outputname = $output_dir1.$filetoconvert;
             $outputnameSD=$output_dir1.$filetoconvertSD;

             $videofile="/var/www/html/".$url;
             $xyz = shell_exec("ffmpeg -i \"{$videofile}\" 2>&1"); //Get duration
             $search='/Duration: (.*?),/';
             preg_match($search, $xyz, $matches);
             $tim=explode(".", $matches[1]);
             $time=$tim[0];
             $ret = exec(' ffmpeg -i /var/www/html/'.$url.' -acodec libfaac -b:a 128k -vcodec libx264 -preset fast -vprofile baseline -b:v 400k -maxrate 400k -bufsize 800k -crf 26 -flags +aic+mv4 /var/www/html/'.$outputnameSD, $out, $err);
             $ret = exec(' ffmpeg -i /var/www/html/'.$url.' -acodec libfaac -b:a 196k -vcodec libx264 -preset fast -vprofile high -b:v 1000k -crf 20 -flags +aic+mv4 /var/www/html/'.$outputname, $out, $err);

             unlink($del_url);
             $url = $output_dir1.$fileName;              

          Database QUERY HERE        
          $ret[]= $fileName;
         echo '<li>
         '.$fileName.'
       </li>';
       set_time_limit($default);
  • How to log unconverted files in FFMPEG due to error ?

    10 juillet 2017, par eugenemon

    I am converting 30,000 video files (each with different number of data/video/audio/subtitle streams) using a single batch file. I do not require data/subtitle streams. This is the code I am using for the batch file :

    for %%i in (*.dat *.mpg *.mpeg) do ffmpeg -hide_banner -v info -n -i %%i -map 0 -dn -sn  -c:v libx264 -crf 20  -c:a aac -b:a 192k  "%%~ni.mp4" >> log.txt 2>&amp;1
    pause

    The resulting log file that I get is 1.67gb in file size and is extremely difficult for me to go through to find the errors of files that weren’t converted.

    An example of a successfully converted file would look like this in the log file :

       Input #0, mpeg, from '571317.mpg':
     Duration: 00:05:06.02, start: 0.060000, bitrate: 2991 kb/s
       Stream #0:0[0x1bf]: Data: dvd_nav_packet
       Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, smpte170m, top first), 720x480 [SAR 8:9 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
       Stream #0:2[0x81]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
       Stream #0:3[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16p, 224 kb/s
    Stream mapping:
     Stream #0:1 -> #0:0 (mpeg2video (native) -> h264 (libx264))
     Stream #0:2 -> #0:1 (ac3 (native) -> aac (native))
     Stream #0:3 -> #0:2 (mp2 (native) -> aac (native))
    Press [q] to stop, [?] for help
    [libx264 @ 000000000043c3a0] using SAR=8/9
    [libx264 @ 000000000043c3a0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
    [libx264 @ 000000000043c3a0] profile High, level 3.0
    [libx264 @ 000000000043c3a0] 264 - core 148 r2762 90a61ec - 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=6 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=20.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to 'F:\571317.mp4':
     Metadata:
       encoder         : Lavf57.71.100
       Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p(top coded first (swapped)), 720x480 [SAR 8:9 DAR 4:3], q=-1--1, 29.97 fps, 30k tbn, 29.97 tbc
       Metadata:
         encoder         : Lavc57.89.100 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
       Stream #0:1: Audio: aac (LC) ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 192 kb/s
       Metadata:
         encoder         : Lavc57.89.100 aac
       Stream #0:2: Audio: aac (LC) ([64][0][0][0] / 0x0040), 48000 Hz, stereo, fltp, 192 kb/s
       Metadata:
         encoder         : Lavc57.89.100 aac
    frame=   83 fps=0.0 q=26.0 size=     168kB time=00:00:02.70 bitrate= 508.4kbits/s speed=5.26x    
    frame=  132 fps=128 q=26.0 size=     660kB time=00:00:04.41 bitrate=1224.4kbits/s speed=4.29x    
    frame=  182 fps=118 q=26.0 size=    1126kB time=00:00:06.05 bitrate=1522.0kbits/s speed=3.92x    
    frame=  235 fps=114 q=26.0 size=    1529kB time=00:00:07.78 bitrate=1608.5kbits/s speed=3.78x    
    frame=  294 fps=114 q=26.0 size=    1867kB time=00:00:09.77 bitrate=1564.9kbits/s speed= 3.8x    
    frame=  352 fps=114 q=26.0 size=    2175kB time=00:00:11.71 bitrate=1521.5kbits/s speed=3.79x    
    frame=  408 fps=113 q=26.0 size=    2681kB time=00:00:13.54 bitrate=1621.1kbits/s speed=3.76x    
    frame=  466 fps=113 q=26.0 size=    3276kB time=00:00:15.50 bitrate=1730.6kbits/s speed=3.77x    
    [mpeg @ 000000000042a820] New subtitle stream 0:4 at pos:6483982 and DTS:17.1437s
    frame=  528 fps=114 q=26.0 size=    3868kB time=00:00:17.57 bitrate=1802.4kbits/s speed=3.79x    
    frame=  572 fps=111 q=26.0 size=    4508kB time=00:00:19.09 bitrate=1934.4kbits/s speed=3.71x    
    frame=  611 fps=108 q=26.0 size=    5215kB time=00:00:20.43 bitrate=2090.4kbits/s speed=3.61x    
    frame=  656 fps=106 q=26.0 size=    6040kB time=00:00:21.86 bitrate=2262.6kbits/s speed=3.54x    
    frame=  698 fps=104 q=26.0 size=    6724kB time=00:00:23.23 bitrate=2370.8kbits/s speed=3.47x    
    frame=  743 fps=103 q=26.0 size=    7451kB time=00:00:24.72 bitrate=2468.6kbits/s speed=3.43x    
    frame=  793 fps=103 q=26.0 size=    8007kB time=00:00:26.45 bitrate=2479.7kbits/s speed=3.43x    
    frame=  851 fps=103 q=26.0 size=    8495kB time=00:00:28.33 bitrate=2456.3kbits/s speed=3.44x    
    frame=  904 fps=103 q=26.0 size=    8992kB time=00:00:30.12 bitrate=2445.4kbits/s speed=3.44x    
    frame=  957 fps=103 q=26.0 size=    9475kB time=00:00:31.91 bitrate=2432.1kbits/s speed=3.44x    
    frame= 1014 fps=104 q=26.0 size=    9967kB time=00:00:33.81 bitrate=2414.6kbits/s speed=3.46x    
    frame= 1071 fps=104 q=26.0 size=   10297kB time=00:00:35.73 bitrate=2360.7kbits/s speed=3.47x    
    frame= 1121 fps=104 q=26.0 size=   10733kB time=00:00:37.39 bitrate=2351.1kbits/s speed=3.46x    
    frame= 1187 fps=105 q=26.0 size=   11145kB time=00:00:39.57 bitrate=2307.1kbits/s speed=3.49x    
    frame= 1241 fps=105 q=26.0 size=   11635kB time=00:00:41.36 bitrate=2304.1kbits/s speed=3.48x    
    frame= 1284 fps=104 q=26.0 size=   12291kB time=00:00:42.79 bitrate=2352.8kbits/s speed=3.45x    
    frame= 1332 fps=103 q=26.0 size=   13049kB time=00:00:44.37 bitrate=2409.0kbits/s speed=3.44x    
    frame= 1386 fps=103 q=26.0 size=   13608kB time=00:00:46.22 bitrate=2411.5kbits/s speed=3.45x    
    frame= 1437 fps=103 q=26.0 size=   14063kB time=00:00:47.95 bitrate=2402.3kbits/s speed=3.44x    
    frame= 1502 fps=104 q=26.0 size=   14504kB time=00:00:50.09 bitrate=2372.0kbits/s speed=3.47x    
    frame= 1558 fps=104 q=26.0 size=   14947kB time=00:00:51.94 bitrate=2357.2kbits/s speed=3.47x    
    frame= 1614 fps=104 q=26.0 size=   15502kB time=00:00:53.80 bitrate=2360.3kbits/s speed=3.48x    
    frame= 1668 fps=104 q=26.0 size=   16041kB time=00:00:55.63 bitrate=2361.9kbits/s speed=3.48x    
    frame= 1725 fps=105 q=26.0 size=   16509kB time=00:00:57.49 bitrate=2352.2kbits/s speed=3.48x    
    frame= 1779 fps=105 q=26.0 size=   16980kB time=00:00:59.30 bitrate=2345.4kbits/s speed=3.48x    
    frame= 1832 fps=104 q=26.0 size=   17487kB time=00:01:01.16 bitrate=2342.2kbits/s speed=3.49x    
    frame= 1886 fps=104 q=26.0 size=   17921kB time=00:01:02.93 bitrate=2332.8kbits/s speed=3.49x    
    frame= 1947 fps=105 q=26.0 size=   18284kB time=00:01:04.93 bitrate=2306.6kbits/s speed= 3.5x    
    frame= 2009 fps=105 q=26.0 size=   18775kB time=00:01:06.98 bitrate=2296.1kbits/s speed=3.51x    
    frame= 2060 fps=105 q=26.0 size=   19307kB time=00:01:08.71 bitrate=2301.7kbits/s speed=3.51x    
    frame= 2113 fps=105 q=26.0 size=   19916kB time=00:01:10.48 bitrate=2314.7kbits/s speed=3.51x    
    frame= 2169 fps=105 q=26.0 size=   20374kB time=00:01:12.36 bitrate=2306.5kbits/s speed=3.51x    
    frame= 2235 fps=106 q=26.0 size=   20667kB time=00:01:14.58 bitrate=2270.0kbits/s speed=3.53x    
    frame= 2286 fps=106 q=26.0 size=   21142kB time=00:01:16.22 bitrate=2272.2kbits/s speed=3.52x    
    frame= 2340 fps=106 q=26.0 size=   21715kB time=00:01:18.05 bitrate=2278.9kbits/s speed=3.52x    
    frame= 2391 fps=105 q=26.0 size=   22368kB time=00:01:19.74 bitrate=2297.8kbits/s speed=3.52x    
    frame= 2439 fps=105 q=26.0 size=   23051kB time=00:01:21.32 bitrate=2322.0kbits/s speed=3.51x    
    frame= 2484 fps=105 q=26.0 size=   23719kB time=00:01:22.83 bitrate=2345.7kbits/s speed=3.49x    
    frame= 2528 fps=104 q=26.0 size=   24432kB time=00:01:24.33 bitrate=2373.3kbits/s speed=3.48x    
    frame= 2568 fps=104 q=26.0 size=   25074kB time=00:01:25.67 bitrate=2397.5kbits/s speed=3.46x    
    frame= 2623 fps=104 q=26.0 size=   25575kB time=00:01:27.50 bitrate=2394.2kbits/s speed=3.46x    
    frame= 2681 fps=104 q=26.0 size=   26025kB time=00:01:29.38 bitrate=2385.1kbits/s speed=3.47x    
    frame= 2734 fps=104 q=26.0 size=   26428kB time=00:01:31.17 bitrate=2374.4kbits/s speed=3.47x    
    frame= 2787 fps=104 q=26.0 size=   26856kB time=00:01:32.97 bitrate=2366.4kbits/s speed=3.47x    
    frame= 2845 fps=104 q=26.0 size=   27262kB time=00:01:34.86 bitrate=2354.0kbits/s speed=3.47x    
    frame= 2905 fps=104 q=26.0 size=   27649kB time=00:01:36.87 bitrate=2338.1kbits/s speed=3.48x    
    frame= 2958 fps=104 q=26.0 size=   28314kB time=00:01:38.66 bitrate=2350.8kbits/s speed=3.48x    
    frame= 3014 fps=104 q=26.0 size=   28794kB time=00:01:40.52 bitrate=2346.6kbits/s speed=3.48x    
    frame= 3075 fps=105 q=26.0 size=   29217kB time=00:01:42.57 bitrate=2333.5kbits/s speed=3.49x    
    frame= 3129 fps=105 q=26.0 size=   29695kB time=00:01:44.36 bitrate=2330.9kbits/s speed=3.49x    
    frame= 3182 fps=105 q=26.0 size=   30167kB time=00:01:46.15 bitrate=2328.0kbits/s speed=3.49x    
    frame= 3240 fps=105 q=26.0 size=   30653kB time=00:01:48.09 bitrate=2323.0kbits/s speed=3.49x    
    frame= 3296 fps=105 q=26.0 size=   31139kB time=00:01:49.97 bitrate=2319.6kbits/s speed= 3.5x    
    frame= 3356 fps=105 q=26.0 size=   31690kB time=00:01:51.93 bitrate=2319.2kbits/s speed= 3.5x    
    frame= 3417 fps=105 q=26.0 size=   32178kB time=00:01:54.00 bitrate=2312.2kbits/s speed=3.51x    
    frame= 3466 fps=105 q=26.0 size=   32767kB time=00:01:55.60 bitrate=2321.9kbits/s speed= 3.5x    
    frame= 3516 fps=105 q=26.0 size=   33321kB time=00:01:57.29 bitrate=2327.3kbits/s speed= 3.5x    
    frame= 3566 fps=105 q=26.0 size=   33858kB time=00:01:58.95 bitrate=2331.7kbits/s speed=3.49x    
    frame= 3612 fps=104 q=26.0 size=   34515kB time=00:02:00.49 bitrate=2346.6kbits/s speed=3.49x    
    frame= 3656 fps=104 q=26.0 size=   35268kB time=00:02:02.00 bitrate=2368.0kbits/s speed=3.48x    
    frame= 3699 fps=104 q=26.0 size=   36006kB time=00:02:03.34 bitrate=2391.3kbits/s speed=3.46x    
    frame= 3742 fps=104 q=26.0 size=   36684kB time=00:02:04.84 bitrate=2407.1kbits/s speed=3.46x    
    frame= 3792 fps=103 q=26.0 size=   37287kB time=00:02:06.44 bitrate=2415.7kbits/s speed=3.45x    
    frame= 3844 fps=103 q=26.0 size=   37684kB time=00:02:08.25 bitrate=2407.0kbits/s speed=3.45x    
    frame= 3902 fps=104 q=26.0 size=   38066kB time=00:02:10.19 bitrate=2395.1kbits/s speed=3.45x    
    frame= 3960 fps=104 q=26.0 size=   38549kB time=00:02:12.07 bitrate=2391.0kbits/s speed=3.46x    
    frame= 4014 fps=104 q=26.0 size=   39081kB time=00:02:13.90 bitrate=2390.8kbits/s speed=3.46x    
    frame= 4071 fps=104 q=26.0 size=   39649kB time=00:02:15.80 bitrate=2391.6kbits/s speed=3.46x    
    frame= 4126 fps=104 q=26.0 size=   40192kB time=00:02:17.62 bitrate=2392.4kbits/s speed=3.46x    
    frame= 4180 fps=104 q=26.0 size=   40736kB time=00:02:19.47 bitrate=2392.6kbits/s speed=3.46x    
    frame= 4237 fps=104 q=26.0 size=   41279kB time=00:02:21.35 bitrate=2392.3kbits/s speed=3.47x    
    frame= 4292 fps=104 q=26.0 size=   41799kB time=00:02:23.25 bitrate=2390.3kbits/s speed=3.47x    
    frame= 4346 fps=104 q=26.0 size=   42355kB time=00:02:25.00 bitrate=2392.9kbits/s speed=3.47x    
    frame= 4387 fps=104 q=26.0 size=   42997kB time=00:02:26.36 bitrate=2406.5kbits/s speed=3.46x    
    frame= 4430 fps=103 q=26.0 size=   43698kB time=00:02:27.79 bitrate=2422.1kbits/s speed=3.45x    
    frame= 4478 fps=103 q=26.0 size=   44374kB time=00:02:29.35 bitrate=2433.9kbits/s speed=3.44x    
    frame= 4541 fps=103 q=26.0 size=   44857kB time=00:02:31.46 bitrate=2426.1kbits/s speed=3.45x    
    frame= 4607 fps=104 q=26.0 size=   45173kB time=00:02:33.68 bitrate=2407.9kbits/s speed=3.46x    
    frame= 4670 fps=104 q=26.0 size=   45525kB time=00:02:35.77 bitrate=2394.1kbits/s speed=3.47x    
    frame= 4732 fps=104 q=26.0 size=   45985kB time=00:02:37.84 bitrate=2386.6kbits/s speed=3.47x    
    frame= 4791 fps=104 q=26.0 size=   46416kB time=00:02:39.80 bitrate=2379.4kbits/s speed=3.48x    
    frame= 4853 fps=104 q=26.0 size=   46853kB time=00:02:41.89 bitrate=2370.8kbits/s speed=3.48x    
    frame= 4914 fps=105 q=26.0 size=   47318kB time=00:02:43.88 bitrate=2365.3kbits/s speed=3.49x    
    frame= 4972 fps=105 q=26.0 size=   47760kB time=00:02:45.84 bitrate=2359.1kbits/s speed=3.49x    
    frame= 5030 fps=105 q=26.0 size=   48130kB time=00:02:47.82 bitrate=2349.3kbits/s speed= 3.5x    
    frame= 5092 fps=105 q=26.0 size=   48527kB time=00:02:49.87 bitrate=2340.1kbits/s speed= 3.5x    
    frame= 5147 fps=105 q=23.0 size=   48906kB time=00:02:51.73 bitrate=2332.9kbits/s speed= 3.5x    
    frame= 5212 fps=105 q=26.0 size=   49346kB time=00:02:53.90 bitrate=2324.5kbits/s speed=3.51x    
    frame= 5270 fps=105 q=26.0 size=   49746kB time=00:02:55.82 bitrate=2317.7kbits/s speed=3.51x    
    frame= 5322 fps=105 q=26.0 size=   50410kB time=00:02:57.51 bitrate=2326.3kbits/s speed=3.51x    
    frame= 5369 fps=105 q=26.0 size=   51006kB time=00:02:59.11 bitrate=2332.8kbits/s speed=3.51x    
    frame= 5421 fps=105 q=26.0 size=   51600kB time=00:03:00.88 bitrate=2336.9kbits/s speed=3.51x    
    frame= 5478 fps=105 q=26.0 size=   52072kB time=00:03:02.76 bitrate=2334.0kbits/s speed=3.51x    
    frame= 5550 fps=105 q=26.0 size=   52432kB time=00:03:05.17 bitrate=2319.6kbits/s speed=3.52x    
    frame= 5614 fps=106 q=26.0 size=   52805kB time=00:03:07.34 bitrate=2309.0kbits/s speed=3.52x    
    frame= 5663 fps=106 q=26.0 size=   53439kB time=00:03:08.94 bitrate=2316.9kbits/s speed=3.52x    
    frame= 5710 fps=105 q=26.0 size=   53940kB time=00:03:10.54 bitrate=2319.0kbits/s speed=3.52x    
    frame= 5770 fps=105 q=26.0 size=   54347kB time=00:03:12.55 bitrate=2312.1kbits/s speed=3.52x    
    frame= 5830 fps=106 q=26.0 size=   54816kB time=00:03:14.49 bitrate=2308.8kbits/s speed=3.52x    
    frame= 5876 fps=105 q=26.0 size=   55518kB time=00:03:16.01 bitrate=2320.3kbits/s speed=3.52x    
    frame= 5921 fps=105 q=26.0 size=   56249kB time=00:03:17.52 bitrate=2332.8kbits/s speed=3.51x    
    frame= 5976 fps=105 q=26.0 size=   56854kB time=00:03:19.33 bitrate=2336.5kbits/s speed=3.51x    
    frame= 6029 fps=105 q=26.0 size=   57370kB time=00:03:21.19 bitrate=2335.9kbits/s speed=3.51x    
    frame= 6081 fps=105 q=26.0 size=   57807kB time=00:03:22.90 bitrate=2333.9kbits/s speed=3.51x    
    frame= 6139 fps=105 q=26.0 size=   58145kB time=00:03:24.82 bitrate=2325.6kbits/s speed=3.51x    
    frame= 6189 fps=105 q=26.0 size=   58602kB time=00:03:26.48 bitrate=2324.9kbits/s speed=3.51x    
    frame= 6246 fps=105 q=26.0 size=   59082kB time=00:03:28.38 bitrate=2322.6kbits/s speed=3.51x    
    frame= 6304 fps=105 q=26.0 size=   59519kB time=00:03:30.34 bitrate=2318.0kbits/s speed=3.52x    
    frame= 6359 fps=105 q=26.0 size=   60028kB time=00:03:32.13 bitrate=2318.0kbits/s speed=3.51x    
    frame= 6418 fps=105 q=26.0 size=   60486kB time=00:03:34.12 bitrate=2314.1kbits/s speed=3.52x    
    frame= 6478 fps=106 q=26.0 size=   60947kB time=00:03:36.10 bitrate=2310.3kbits/s speed=3.52x    
    frame= 6537 fps=106 q=26.0 size=   61412kB time=00:03:38.09 bitrate=2306.8kbits/s speed=3.52x    
    frame= 6596 fps=106 q=26.0 size=   61938kB time=00:03:40.07 bitrate=2305.6kbits/s speed=3.53x    
    frame= 6658 fps=106 q=26.0 size=   62386kB time=00:03:42.14 bitrate=2300.6kbits/s speed=3.53x    
    frame= 6727 fps=106 q=26.0 size=   62836kB time=00:03:44.46 bitrate=2293.2kbits/s speed=3.54x    
    frame= 6780 fps=106 q=26.0 size=   63400kB time=00:03:46.17 bitrate=2296.3kbits/s speed=3.54x    
    frame= 6830 fps=106 q=26.0 size=   63962kB time=00:03:47.88 bitrate=2299.3kbits/s speed=3.53x    
    frame= 6884 fps=106 q=26.0 size=   64394kB time=00:03:49.67 bitrate=2296.8kbits/s speed=3.53x    
    frame= 6940 fps=106 q=26.0 size=   64782kB time=00:03:51.53 bitrate=2292.1kbits/s speed=3.53x    
    frame= 6994 fps=106 q=26.0 size=   65278kB time=00:03:53.36 bitrate=2291.5kbits/s speed=3.53x    
    frame= 7048 fps=106 q=26.0 size=   65778kB time=00:03:55.11 bitrate=2291.9kbits/s speed=3.53x    
    frame= 7104 fps=106 q=26.0 size=   66288kB time=00:03:56.99 bitrate=2291.4kbits/s speed=3.53x    
    frame= 7162 fps=106 q=26.0 size=   66668kB time=00:03:58.93 bitrate=2285.8kbits/s speed=3.54x    
    frame= 7223 fps=106 q=26.0 size=   66988kB time=00:04:00.98 bitrate=2277.2kbits/s speed=3.54x    
    frame= 7285 fps=106 q=26.0 size=   67304kB time=00:04:03.05 bitrate=2268.5kbits/s speed=3.54x    
    frame= 7341 fps=106 q=26.0 size=   67682kB time=00:04:04.97 bitrate=2263.3kbits/s speed=3.54x    
    frame= 7399 fps=106 q=26.0 size=   68156kB time=00:04:06.82 bitrate=2262.0kbits/s speed=3.55x    
    frame= 7459 fps=106 q=26.0 size=   68626kB time=00:04:08.85 bitrate=2259.1kbits/s speed=3.55x    
    frame= 7519 fps=106 q=26.0 size=   69070kB time=00:04:10.85 bitrate=2255.5kbits/s speed=3.55x    
    frame= 7572 fps=106 q=26.0 size=   69583kB time=00:04:12.65 bitrate=2256.2kbits/s speed=3.55x    
    frame= 7624 fps=106 q=26.0 size=   70046kB time=00:04:14.37 bitrate=2255.7kbits/s speed=3.55x    
    frame= 7678 fps=106 q=26.0 size=   70486kB time=00:04:16.14 bitrate=2254.2kbits/s speed=3.55x    
    frame= 7726 fps=106 q=26.0 size=   70960kB time=00:04:17.74 bitrate=2255.3kbits/s speed=3.54x    
    frame= 7768 fps=106 q=26.0 size=   71567kB time=00:04:19.15 bitrate=2262.3kbits/s speed=3.54x    
    frame= 7816 fps=106 q=26.0 size=   72193kB time=00:04:20.75 bitrate=2268.0kbits/s speed=3.54x    
    frame= 7874 fps=106 q=26.0 size=   72495kB time=00:04:22.67 bitrate=2260.9kbits/s speed=3.54x    
    frame= 7933 fps=106 q=26.0 size=   72901kB time=00:04:24.64 bitrate=2256.7kbits/s speed=3.54x    
    frame= 7986 fps=106 q=26.0 size=   73449kB time=00:04:26.41 bitrate=2258.5kbits/s speed=3.54x    
    frame= 8041 fps=106 q=26.0 size=   74045kB time=00:04:28.24 bitrate=2261.3kbits/s speed=3.54x    
    frame= 8098 fps=106 q=26.0 size=   74565kB time=00:04:30.16 bitrate=2261.0kbits/s speed=3.54x    
    frame= 8147 fps=106 q=26.0 size=   75117kB time=00:04:31.85 bitrate=2263.6kbits/s speed=3.54x    
    frame= 8198 fps=106 q=26.0 size=   75839kB time=00:04:33.51 bitrate=2271.5kbits/s speed=3.53x    
    frame= 8248 fps=106 q=26.0 size=   76482kB time=00:04:35.22 bitrate=2276.5kbits/s speed=3.53x    
    frame= 8297 fps=106 q=26.0 size=   77092kB time=00:04:36.82 bitrate=2281.4kbits/s speed=3.53x    
    frame= 8356 fps=106 q=26.0 size=   77645kB time=00:04:38.74 bitrate=2281.9kbits/s speed=3.53x    
    frame= 8414 fps=106 q=26.0 size=   78104kB time=00:04:40.74 bitrate=2279.0kbits/s speed=3.53x    
    frame= 8474 fps=106 q=26.0 size=   78606kB time=00:04:42.70 bitrate=2277.8kbits/s speed=3.54x    
    frame= 8528 fps=106 q=26.0 size=   79172kB time=00:04:44.52 bitrate=2279.5kbits/s speed=3.54x    
    frame= 8587 fps=106 q=26.0 size=   79795kB time=00:04:46.46 bitrate=2281.9kbits/s speed=3.54x    
    frame= 8653 fps=106 q=26.0 size=   80391kB time=00:04:48.68 bitrate=2281.3kbits/s speed=3.54x    
    frame= 8718 fps=106 q=26.0 size=   81021kB time=00:04:50.90 bitrate=2281.6kbits/s speed=3.55x    
    frame= 8779 fps=106 q=26.0 size=   81570kB time=00:04:52.90 bitrate=2281.3kbits/s speed=3.55x    
    frame= 8826 fps=106 q=26.0 size=   82147kB time=00:04:54.50 bitrate=2285.0kbits/s speed=3.55x    
    frame= 8882 fps=106 q=26.0 size=   82800kB time=00:04:56.36 bitrate=2288.8kbits/s speed=3.55x    
    frame= 8950 fps=106 q=26.0 size=   83343kB time=00:04:58.64 bitrate=2286.2kbits/s speed=3.55x    
    frame= 9018 fps=107 q=26.0 size=   83935kB time=00:05:00.90 bitrate=2285.1kbits/s speed=3.56x    
    frame= 9086 fps=107 q=26.0 size=   84481kB time=00:05:03.14 bitrate=2282.9kbits/s speed=3.56x    
    frame= 9151 fps=107 q=26.0 size=   85052kB time=00:05:05.30 bitrate=2282.2kbits/s speed=3.57x    
    frame= 9161 fps=106 q=-1.0 Lsize=   85813kB time=00:05:06.02 bitrate=2297.1kbits/s speed=3.56x    
    video:70963kB audio:14493kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.417440%
    [libx264 @ 000000000043c3a0] frame I:43    Avg QP:17.04  size: 36009
    [libx264 @ 000000000043c3a0] frame P:2866  Avg QP:20.64  size: 16000
    [libx264 @ 000000000043c3a0] frame B:6252  Avg QP:24.39  size:  4040
    [libx264 @ 000000000043c3a0] consecutive B-frames:  1.0%  6.9% 51.7% 40.5%
    [libx264 @ 000000000043c3a0] mb I  I16..4: 27.5% 65.5%  7.1%
    [libx264 @ 000000000043c3a0] mb P  I16..4:  3.7% 12.3%  0.8%  P16..4: 35.0% 15.9%  7.6%  0.0%  0.0%    skip:24.7%
    [libx264 @ 000000000043c3a0] mb B  I16..4:  0.4%  0.8%  0.0%  B16..8: 42.8%  4.8%  1.0%  direct: 5.4%  skip:44.8%  L0:34.0% L1:43.7% BI:22.3%
    [libx264 @ 000000000043c3a0] 8x8 transform intra:71.3% inter:82.4%
    [libx264 @ 000000000043c3a0] coded y,uvDC,uvAC intra: 65.8% 73.9% 23.9% inter: 26.4% 20.4% 1.3%
    [libx264 @ 000000000043c3a0] i16 v,h,dc,p: 21% 47%  5% 28%
    [libx264 @ 000000000043c3a0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 19% 26% 26%  4%  4%  4%  6%  4%  6%
    [libx264 @ 000000000043c3a0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 28% 28%  8%  4%  6%  6%  8%  4%  7%
    [libx264 @ 000000000043c3a0] i8c dc,h,v,p: 41% 31% 18%  9%
    [libx264 @ 000000000043c3a0] Weighted P-Frames: Y:3.0% UV:2.5%
    [libx264 @ 000000000043c3a0] ref P L0: 61.5% 19.2% 15.3%  3.9%  0.1%
    [libx264 @ 000000000043c3a0] ref B L0: 83.3% 15.0%  1.7%
    [libx264 @ 000000000043c3a0] ref B L1: 97.3%  2.7%
    [libx264 @ 000000000043c3a0] kb/s:1901.79
    [aac @ 00000000004b1080] Qavg: 583.592
    [aac @ 0000000000474440] Qavg: 396.171

    And an example of a file that didn’t converted (in this case due to the fact that I didn’t specify to ignore subtitle stream, which I corrected by adding -sn to the batch file.) :

    Input #0, mpeg, from '571314.mpg':
     Duration: 00:05:44.78, start: 0.060000, bitrate: 2989 kb/s
       Stream #0:0[0x1bf]: Data: dvd_nav_packet
       Stream #0:1[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, smpte170m, top first), 720x480 [SAR 8:9 DAR 4:3], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
       Stream #0:2[0x81]: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
       Stream #0:3[0x20]: Subtitle: dvd_subtitle
       Stream #0:4[0x1c0]: Audio: mp2, 48000 Hz, stereo, s16p, 224 kb/s
    Automatic encoder selection failed for output stream #0:2. Default encoder for format mp4 (codec none) is probably disabled. Please choose an encoder manually.
    Error selecting an encoder for stream 0:2

    How exactly can I output a log file that simply state the files that weren’t converted and the error that entails. Example :

    000002.mpg - Not converted
    Automatic encoder selection failed for output stream #0:2. Default encoder for format mp4 (codec none) is probably disabled. Please choose an encoder manually.
    Error selecting an encoder for stream 0:2

    000123.mpg - Not converted
    Automatic encoder selection failed for output stream #0:2. Default encoder for format mp4 (codec none) is probably disabled. Please choose an encoder manually.
    Error selecting an encoder for stream 0:2

    This way, I won’t have to toy with a huge log file. Thanks !

  • Cutting a live stream into separate mp4 files

    9 juin 2017, par Fearhunter

    I am doing a research for cutting a live stream in piece and save it as mp4 files. I am using this source for the proof of concept :

    https://docs.microsoft.com/en-us/azure/media-services/media-services-dotnet-creating-live-encoder-enabled-channel#download-sample

    And this is the example code I use :

    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Security.Cryptography;
    using System.Text;
    using System.Threading.Tasks;
    using Microsoft.WindowsAzure.MediaServices.Client;
    using Newtonsoft.Json.Linq;

    namespace AMSLiveTest
    {
       class Program
       {
           private const string StreamingEndpointName = "streamingendpoint001";
           private const string ChannelName = "channel001";
           private const string AssetlName = "asset001";
           private const string ProgramlName = "program001";

           // Read values from the App.config file.
           private static readonly string _mediaServicesAccountName =
           ConfigurationManager.AppSettings["MediaServicesAccountName"];
           private static readonly string _mediaServicesAccountKey =
           ConfigurationManager.AppSettings["MediaServicesAccountKey"];

           // Field for service context.
           private static CloudMediaContext _context = null;
           private static MediaServicesCredentials _cachedCredentials = null;

           static void Main(string[] args)
           {
               // Create and cache the Media Services credentials in a static class variable.
               _cachedCredentials = new MediaServicesCredentials(
               _mediaServicesAccountName,
               _mediaServicesAccountKey);
               // Used the cached credentials to create CloudMediaContext.
               _context = new CloudMediaContext(_cachedCredentials);

               IChannel channel = CreateAndStartChannel();

               // Set the Live Encoder to point to the channel's input endpoint:
               string ingestUrl = channel.Input.Endpoints.FirstOrDefault().Url.ToString();

               // Use the previewEndpoint to preview and verify
               // that the input from the encoder is actually reaching the Channel.
               string previewEndpoint = channel.Preview.Endpoints.FirstOrDefault().Url.ToString();

               IProgram program = CreateAndStartProgram(channel);
               ILocator locator = CreateLocatorForAsset(program.Asset, program.ArchiveWindowLength);
               IStreamingEndpoint streamingEndpoint = CreateAndStartStreamingEndpoint();
               GetLocatorsInAllStreamingEndpoints(program.Asset);

               // Once you are done streaming, clean up your resources.
               Cleanup(streamingEndpoint, channel);
           }

           public static IChannel CreateAndStartChannel()
           {
               //If you want to change the Smooth fragments to HLS segment ratio, you would set the ChannelCreationOptions’s Output property.

               IChannel channel = _context.Channels.Create(
               new ChannelCreationOptions
               {
               Name = ChannelName,
               Input = CreateChannelInput(),
               Preview = CreateChannelPreview()
               });

               //Starting and stopping Channels can take some time to execute. To determine the state of operations after calling Start or Stop, query the IChannel.State .

               channel.Start();

               return channel;
           }

           private static ChannelInput CreateChannelInput()
           {
               return new ChannelInput
               {
                   StreamingProtocol = StreamingProtocol.RTMP,
                   AccessControl = new ChannelAccessControl
                   {
                       IPAllowList = new List<iprange>
                               {
                               new IPRange
                           {
                               Name = "TestChannelInput001",
                               // Setting 0.0.0.0 for Address and 0 for SubnetPrefixLength
                               // will allow access to IP addresses.
                               Address = IPAddress.Parse("0.0.0.0"),
                               SubnetPrefixLength = 0
                           }
                       }
                   }
               };
           }

           private static ChannelPreview CreateChannelPreview()
           {
               return new ChannelPreview
               {
                   AccessControl = new ChannelAccessControl
                   {
                       IPAllowList = new List<iprange>
                       {
                           new IPRange
                           {
                               Name = "TestChannelPreview001",
                               // Setting 0.0.0.0 for Address and 0 for SubnetPrefixLength
                               // will allow access to IP addresses.
                               Address = IPAddress.Parse("0.0.0.0"),
                               SubnetPrefixLength = 0
                           }
                       }
                   }
               };
           }

           public static void UpdateCrossSiteAccessPoliciesForChannel(IChannel channel)
           {
               var clientPolicy =
                   @"&lt;?xml version=""1.0"" encoding=""utf-8""?>
               
                   
                       <policy>
                           
                               <domain uri=""></domain>
                           
                           
                              <resource path=""></resource>"" include-subpaths=""true""/>
                           
                       </policy>
                   
               ";

               var xdomainPolicy =
                   @"&lt;?xml version=""1.0"" ?>
               
                   
               ";

               channel.CrossSiteAccessPolicies.ClientAccessPolicy = clientPolicy;
               channel.CrossSiteAccessPolicies.CrossDomainPolicy = xdomainPolicy;

               channel.Update();
           }

           public static IProgram CreateAndStartProgram(IChannel channel)
           {
               IAsset asset = _context.Assets.Create(AssetlName, AssetCreationOptions.None);

               // Create a Program on the Channel. You can have multiple Programs that overlap or are sequential;
               // however each Program must have a unique name within your Media Services account.
               IProgram program = channel.Programs.Create(ProgramlName, TimeSpan.FromHours(3), asset.Id);
               program.Start();

               return program;
           }

           public static ILocator CreateLocatorForAsset(IAsset asset, TimeSpan ArchiveWindowLength)
           {
               // You cannot create a streaming locator using an AccessPolicy that includes write or delete permissions.            

               var locator = _context.Locators.CreateLocator
                   (
                       LocatorType.OnDemandOrigin,
                       asset,
                       _context.AccessPolicies.Create
                       (
                           "Live Stream Policy",
                           ArchiveWindowLength,
                           AccessPermissions.Read
                       )
                   );

               return locator;
           }

           public static IStreamingEndpoint CreateAndStartStreamingEndpoint()
           {
               var options = new StreamingEndpointCreationOptions
               {
                   Name = StreamingEndpointName,
                   ScaleUnits = 1,
                   AccessControl = GetAccessControl(),
                   CacheControl = GetCacheControl()
               };

               IStreamingEndpoint streamingEndpoint = _context.StreamingEndpoints.Create(options);
               streamingEndpoint.Start();

               return streamingEndpoint;
           }

           private static StreamingEndpointAccessControl GetAccessControl()
           {
               return new StreamingEndpointAccessControl
               {
                   IPAllowList = new List<iprange>
                   {
                       new IPRange
                       {
                           Name = "Allow all",
                           Address = IPAddress.Parse("0.0.0.0"),
                           SubnetPrefixLength = 0
                       }
                   },

                   AkamaiSignatureHeaderAuthenticationKeyList = new List<akamaisignatureheaderauthenticationkey>
                   {
                       new AkamaiSignatureHeaderAuthenticationKey
                       {
                           Identifier = "My key",
                           Expiration = DateTime.UtcNow + TimeSpan.FromDays(365),
                           Base64Key = Convert.ToBase64String(GenerateRandomBytes(16))
                       }
                   }
               };
           }

           private static byte[] GenerateRandomBytes(int length)
           {
               var bytes = new byte[length];
               using (var rng = new RNGCryptoServiceProvider())
               {
                   rng.GetBytes(bytes);
               }

               return bytes;
           }

           private static StreamingEndpointCacheControl GetCacheControl()
           {
               return new StreamingEndpointCacheControl
               {
                   MaxAge = TimeSpan.FromSeconds(1000)
               };
           }

           public static void UpdateCrossSiteAccessPoliciesForStreamingEndpoint(IStreamingEndpoint streamingEndpoint)
           {
               var clientPolicy =
                   @"&lt;?xml version=""1.0"" encoding=""utf-8""?>
               
                   
                       <policy>
                           
                               <domain uri=""></domain>
                           
                           
                              <resource path=""></resource>"" include-subpaths=""true""/>
                           
                       </policy>
                   
               ";

               var xdomainPolicy =
                   @"&lt;?xml version=""1.0"" ?>
               
                   
               ";

               streamingEndpoint.CrossSiteAccessPolicies.ClientAccessPolicy = clientPolicy;
               streamingEndpoint.CrossSiteAccessPolicies.CrossDomainPolicy = xdomainPolicy;

               streamingEndpoint.Update();
           }

           public static void GetLocatorsInAllStreamingEndpoints(IAsset asset)
           {
               var locators = asset.Locators.Where(l => l.Type == LocatorType.OnDemandOrigin);
               var ismFile = asset.AssetFiles.AsEnumerable().FirstOrDefault(a => a.Name.EndsWith(".ism"));
               var template = new UriTemplate("{contentAccessComponent}/{ismFileName}/manifest");
               var urls = locators.SelectMany(l =>
                           _context
                               .StreamingEndpoints
                               .AsEnumerable()
                               .Where(se => se.State == StreamingEndpointState.Running)
                               .Select(
                                   se =>
                                       template.BindByPosition(new Uri("http://" + se.HostName),
                                       l.ContentAccessComponent,
                                           ismFile.Name)))
                           .ToArray();

           }

           public static void Cleanup(IStreamingEndpoint streamingEndpoint,
                                       IChannel channel)
           {
               if (streamingEndpoint != null)
               {
                   streamingEndpoint.Stop();
                   streamingEndpoint.Delete();
               }

               IAsset asset;
               if (channel != null)
               {

                   foreach (var program in channel.Programs)
                   {
                       asset = _context.Assets.Where(se => se.Id == program.AssetId)
                                               .FirstOrDefault();

                       program.Stop();
                       program.Delete();

                       if (asset != null)
                       {
                           foreach (var l in asset.Locators)
                               l.Delete();

                           asset.Delete();
                       }
                   }

                   channel.Stop();
                   channel.Delete();
               }
           }
       }
    }
    </akamaisignatureheaderauthenticationkey></iprange></iprange></iprange>

    Now I want to make a method to cut a live stream for example every 15 minutes and save it as mp4 but don’t know where to start.

    Can someone point me in the right direction ?

    Kind regards

    UPDATE :

    I want to save the mp4 files on my hard disk.