Recherche avancée

Médias (1)

Mot : - Tags -/illustrator

Autres articles (60)

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
    Le super Cron (gestion_mutu_super_cron)
    Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)

  • Organiser par catégorie

    17 mai 2013, par

    Dans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
    Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
    Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...)

  • 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 (9576)

  • My FFMPEG throws me unexpected errors while writing a Thumbnail to the songs

    4 mars 2019, par Harmonised7

    I am using Node to execute my ffmpeg. I use this wrapper :

    https://www.npmjs.com/package/ffmpeg

    Everything was fine when I was using smaller versions of the thumbnails provided by Youtube, but when I attempted the HD ones, it suddenly started giving me an error. I’ve tried -pix_fmt yuv422p and Many other pixel formats, but nothing helped. Though ONE out of 100+ songs did tag successfully.

    here is my code :

    downloadTags(tags.thumbnail, `./thumbnails/${tags.title}.jpg`).then(thumbnail =>
                       {
                           video.addCommand('-i', `"${thumbnail}"`);
                           video.addCommand('-map', '0');
                           video.addCommand('-map', '1');
                           video.addCommand('-c', 'copy');
                           video.addCommand('-c:v:1', 'png');
                           video.addCommand('-disposition:v:0', 'attached_pic');
                           if(tags.title)
                               video.addCommand('-metadata', `title="${tags.title}"`);
                           if(tags.artist)
                               video.addCommand('-metadata', `artist="${tags.artist}"`);
                           if(tags.id)
                               video.addCommand('-metadata', `comment="https://www.youtube.com/watch?v=${tags.id}"`);
                           video.addCommand('-pix_fmt', `yuv422p`);


                           var output = 'downloaded'
                           if (outFolder)
                           {
                               output = outFolder;
                               if(!fs.existsSync(output)) fs.mkdirSync(output);
                           }

                           video.save(`"./${output}/${tags.title}.${tags.format}"`, function (error, file)
                           {
                               if (error)
                               {
                                   resolve(error);
                                   return
                               }
                               try
                               {
                                   fs.unlinkSync(song);
                               }
                               catch(err)
                               {
                                   console.log(err.code);
                               }
                               resolve();

                           });
                       });

                   }

    and here is my error :

    E

    RROR: Error: Command failed: ffmpeg -i "songs/&I feat. Giggly Maria - Dive (Exiark's Endless Sky Remix) [Chillstep].m4a" -y  -i "./thumbnails/&I feat. Giggly Maria - Dive (Exiark's Endless Sky Remix) [Chillstep].jpg" -map 0 -map 1 -c copy -c:v:1 png -disposition:v:0 attached_pic -metadata title="&I feat. Giggly Maria - Dive (Exiark's Endless Sky Remix) [Chillstep]" -metadata artist="AReallyLongAndAwesomeNameThatIsBetterThanYoursInEveryPossibleWay" -metadata comment="https://www.youtube.com/watch?v=HprdvIIpR-I" "./written/&I feat. Giggly Maria - Dive (Exiark's Endless Sky Remix) [Chillstep].m4a"
    ffmpeg version N-93214-g7e4d3dbe18 Copyright (c) 2000-2019 the FFmpeg developers
     built with gcc 8.2.1 (GCC) 20190212
     configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
     libavutil      56. 26.100 / 56. 26.100
     libavcodec     58. 47.102 / 58. 47.102
     libavformat    58. 26.101 / 58. 26.101
     libavdevice    58.  6.101 / 58.  6.101
     libavfilter     7. 48.100 /  7. 48.100
     libswscale      5.  4.100 /  5.  4.100
     libswresample   3.  4.100 /  3.  4.100
     libpostproc    55.  4.100 / 55.  4.100
    [mov,mp4,m4a,3gp,3g2,mj2 @ 000002213366bb00] stream 0, timescale not set
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'songs/&I feat. Giggly Maria - Dive (Exiark's Endless Sky Remix) [Chillstep].m4a':
     Metadata:
       major_brand     : M4A
       minor_version   : 512
       compatible_brands: isomiso2
       title           : &I feat. Giggly Maria - Dive (Exiark's Endless Sky Remix) [Chillstep]
       artist          : Cider Party
       encoder         : Lavf58.18.104
       comment         : https://www.youtube.com/watch?v=HprdvIIpR-I
     Duration: 00:05:24.80, start: 0.000000, bitrate: 127 kb/s
       Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 125 kb/s (default)
       Metadata:
         handler_name    : SoundHandler
       Stream #0:1: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 120x90 [SAR 1:1 DAR 4:3], 90k tbr, 90k tbn, 90k tbc
    Input #1, image2, from './thumbnails/&I feat. Giggly Maria - Dive (Exiark's Endless Sky Remix) [Chillstep].jpg':
     Duration: 00:00:00.04, start: 0.000000, bitrate: 1575 kb/s
       Stream #1:0: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 480x360 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)
     Stream #0:1 -> #0:1 (copy)
     Stream #1:0 -> #0:2 (mjpeg (native) -> png (native))
    Press [q] to stop, [?] for help
    [swscaler @ 00000221353d4fc0] deprecated pixel format used, make sure you did set range correctly
    [ipod @ 00000221336703c0] Could not find tag for codec png in stream #2, codec not currently supported in container
    Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
    Error initializing output stream 0:2 --
    Conversion failed!

    Keep in mind that All of my thumbnails retrieved are .jpg

    Any suggestions ? Getting really desperate at this point...

  • Converting RGB to YUV, + ffmpeg

    10 juillet 2012, par TheSHEEEP

    I am trying the following to record a live video from my Flash/AIR application :

    1. I take a "screenshot" (BitmapData from stage) each frame.
    2. I convert each pixel to yuv format like this (V2) :

         var file :File = new File(_appUrl + "/creation/output.raw");
         var fs :FileStream = new FileStream();
         fs.open(file, FileMode.WRITE);
         var finalY :ByteArray = new ByteArray();
         var finalU :ByteArray = new ByteArray();
         var finalV :ByteArray = new ByteArray();
         var rect :Rectangle = new Rectangle(0, 0, 600, 700);
         var pixels :ByteArray;
         var pixel :uint;
         var r :uint;
         var g :uint;
         var b :uint;
         _screenBuffer = _screenBuffer.reverse();
         while (_screenBuffer.length > 0)
         {
             pixels = BitmapData(_screenBuffer.pop()).getPixels(rect);
             pixels.position = 0;
             // Convert and save each pixel
             for (var x:int = 0; x < 600; x++)
             {
                 for (var y:int = 0; y < 700; y++)
                 {
                     // Convert to yuv
                     pixel = pixels.readUnsignedInt();
                     r = pixel >> 16 & 0xff;
                     g = pixel >> 8 & 0xff;
                     b = pixel & 0xff;
                         // Y' is written for each pixel
                     finalY.writeByte(0.257 * r + 0.504 * g + 0.098 * b + 128);
                         // U and V are written once per 2x2 pixel block
                     if (x % 2 == 0 && y % 2 == 0)
                     {
                         finalU.writeByte(-0.148 * r - 0.291 * g + 0.439 * b + 128);
                         finalV.writeByte(0.439 * r - 0.368 * g - 0.071 * b + 128);
                     }
                 }
             }
         }
         // Write the converted bytes to the file
         finalY.position = 0;
         finalU.position = 0;
         finalV.position = 0;
         fs.writeBytes(finalY, 0, finalY.length);
         fs.writeBytes(finalU, 0, finalU.length);
         fs.writeBytes(finalV, 0, finalV.length);
         fs.close();
    3. I use the following line of ffmpeg to convert the raw file to a video :

      ffmpeg -r 30 -pix_fmt yuv420p -s 600x700 -vcodec rawvideo -f rawvideo -i output.raw -y test.mp4

    A video is created, but it is simply a mess, barely resembling what was recorded. I know that the capturing process works, as I have tried the same BitmapData "screenshots" with the SimpleFlvWriter.

    So, either something is wrong with my conversion or with the ffmpeg line, but I have no idea.

    This is what ffmpeg outputs when creating the video, maybe it can help someone :

    libavutil      51. 39.100 / 51. 39.100
    libavcodec     54.  3.101 / 54.  3.101
    libavformat    54.  1.100 / 54.  1.100
    libavdevice    53.  4.100 / 53.  4.100
    libavfilter     2. 62.101 /  2. 62.101
    libswscale      2.  1.100 /  2.  1.100
    libswresample   0.  7.100 /  0.  7.100
    libpostproc    52.  0.100 / 52.  0.100
    [rawvideo @ 01D39FC0] Estimating duration from bitrate, this may be inaccurate
    Input #0, rawvideo, from 'output.raw':
     Duration: N/A, start: 0.000000, bitrate: N/A
       Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 600x700, 30 tbr,
    30 tbn, 30 tbc
    [buffer @ 01D3FEC0] w:600 h:700 pixfmt:yuv420p tb:1/1000000 sar:0/1 sws_param:
    [libx264 @ 0375DB80] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE 4.2 AVX
    [libx264 @ 0375DB80] profile High, level 3.1
    [libx264 @ 0375DB80] 264 - core 120 r2146 bcd41db - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - 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=12 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=0rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to 'test.mp4':
     Metadata:
       encoder         : Lavf54.1.100
       Stream #0:0: Video: h264 (![0][0][0] / 0x0021), yuv420p, 600x700, q=-1--1, 30 tbn, 30 tbc
    Stream mapping:
     Stream #0:0 -> #0:0 (rawvideo -> libx264)
    Press [q] to stop, [?] for help
    Truncating packet of size 630000 to 1
    frame=   48 fps=  0 q=-1.0 Lsize=     157kB time=00:00:01.53 bitrate= 837.3kbits/s
    video:156kB audio:0kB global headers:0kB muxing overhead 0.687626%
    [libx264 @ 0375DB80] frame I:3     Avg QP:23.15  size: 23480
    [libx264 @ 0375DB80] frame P:38    Avg QP:28.80  size:  2169
    [libx264 @ 0375DB80] frame B:7     Avg QP:29.61  size:   833
    [libx264 @ 0375DB80] consecutive B-frames: 79.2%  4.2%  0.0% 16.7%
    [libx264 @ 0375DB80] mb I  I16..4: 41.4%  6.2% 52.4%
    [libx264 @ 0375DB80] mb P  I16..4: 10.6%  3.3%  0.9%  P16..4: 68.4%  1.3%  1.2% 0.0%  0.0%    skip:14.2%
    [libx264 @ 0375DB80] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8: 13.3%  2.2%  0.7% direct: 1.9%  skip:81.9%  L0:51.6% L1:47.4% BI: 1.0%
    [libx264 @ 0375DB80] 8x8 transform intra:16.7% inter:31.2%
    [libx264 @ 0375DB80] coded y,uvDC,uvAC intra: 14.7% 25.5% 22.3% inter: 1.0% 4.1% 3.4%
    [libx264 @ 0375DB80] i16 v,h,dc,p: 87% 11%  2%  0%
    [libx264 @ 0375DB80] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu:  3% 18% 75%  1%  0%  1%  1% 0%  0%
    [libx264 @ 0375DB80] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu:  6% 74% 12%  1%  1%  1%  2% 1%  2%
    [libx264 @ 0375DB80] i8c dc,h,v,p: 51% 45%  4%  1%
    [libx264 @ 0375DB80] Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 0375DB80] ref P L0:  4.6%  0.4% 94.6%  0.3%
    [libx264 @ 0375DB80] ref B L0: 96.0%  4.0%
    [libx264 @ 0375DB80] ref B L1: 96.5%  3.5%
    [libx264 @ 0375DB80] kb/s:793.39

    I'm not really a codec expert (just starting ;)), so I don't know what to make of most of that.

    Here is a zip that contains one of the frames and the video output. What should be visible is a green smiling pear, without any artifacts. Remember the size is 600x700 and the format yuv420. Best to view such raw image files with irfanview, IMO. Don't mind the noise, its from pushing against my microphone ;)

  • ProcessBuilder is not called when trying to start a process

    15 juin 2022, par xnok

    I am trying to understand more about the ffmpeg usage in JavaCV for android studio and for said task I am trying to use ProcessBuilder. I tried writting a simple program to debug the pb.start(); Although, I am not getting a response. What I did was to start a default/empty activity and pasted the following program :

    


    package com.example.myapplication;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;

import org.bytedeco.javacpp.Loader;

import android.os.Build;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {
    static final int cols = 192;
    static final int rows = 108;
    static final String ffmpeg = Loader.load(org.bytedeco.ffmpeg.ffmpeg.class);
    static final String rtmp_url = "test.flv";
    static final String[] command = {ffmpeg,
            "-y",
            "-f", "rawvideo",
            "-vcodec", "rawvideo",
            "-pix_fmt", "bgr24",
            "-s", (Integer.toString(cols) + "x" + Integer.toString(rows)),
            "-r", "10",
            "-i", "pipe:",
            "-c:v", "libx264",
            "-pix_fmt", "yuv420p",
            "-preset", "ultrafast",
            "-f", "flv",
            rtmp_url};
    @RequiresApi(api = Build.VERSION_CODES.O)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new Thread(t1).start();

    }
    private static Runnable t1 = () -> {
        Log.e("TAG", "void OnCreate called successfully!");
        ProcessBuilder pb = new ProcessBuilder(command).redirectErrorStream(true);
        pb.redirectErrorStream(true);
        try {
            Process process = pb.start();
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            OutputStream writer = process.getOutputStream();
            Log.e("TAG", "Something good happened here");
        } catch (IOException e) {
            e.printStackTrace();
            Log.e("TAG", "Nothing good happened here");
        }
    };


}


    


    My current problem is that I can't seem to start properly the processBuilder process via pb.start() ;

    


    I get the following logs from the logcat panel :

    


    2022-06-14 17:24:46.328 13371-13371/com.example.myapplication E/TAG: void OnCreate called successfully!
2022-06-14 17:24:46.333 13371-13371/com.example.myapplication E/TAG: Nothing good happened here


    


    I'd like to understand why is it skipping the try/catch block and not starting the process ?

    


    EDIT : I made some changes as per @g00se's suggestions and I got the following stack trace from the code above :

    


    2022-06-15 00:32:26.700 29787-29787/? E/USNET: USNET: appName: com.example.myapplication
2022-06-15 00:32:29.328 29787-29828/com.example.myapplication E/TAG: void OnCreate called successfully!
2022-06-15 00:32:29.330 29787-29828/com.example.myapplication E/AndroidRuntime: FATAL EXCEPTION: Thread-4
    Process: com.example.myapplication, PID: 29787
    java.lang.NullPointerException
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1012)
        at com.example.myapplication.MainActivity.lambda$static$0(MainActivity.java:48)
        at com.example.myapplication.MainActivity$$ExternalSyntheticLambda0.run(Unknown Source:0)
        at java.lang.Thread.run(Thread.java:920)