Recherche avancée

Médias (91)

Autres articles (68)

  • 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

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

  • L’utiliser, en parler, le critiquer

    10 avril 2011

    La première attitude à adopter est d’en parler, soit directement avec les personnes impliquées dans son développement, soit autour de vous pour convaincre de nouvelles personnes à l’utiliser.
    Plus la communauté sera nombreuse et plus les évolutions seront rapides ...
    Une liste de discussion est disponible pour tout échange entre utilisateurs.

Sur d’autres sites (8033)

  • Deobfuscation Redux : JavaScript

    20 juin 2011, par Multimedia Mike — Reverse Engineering, deobfuscation, javascript, programming

    Google recently released version 12 of their Chrome browser. This version adds a new feature that automatically allows deobfuscating obfuscated JavaScript source code.

    Before :



    After :



    As a reverse engineering purist, I was a bit annoyed. Not at the feature, just the naming. This is clearly code beautification but not necessarily deobfuscation. The real obfuscation comes not from removing whitespace but from renaming variable and function names to terse 1- and 2-letter identifiers. True automated deobfuscation — which entails recovering the original variable and function identifiers as well as source code comments — is basically impossible.

    Still, it makes me wonder if there is any interest in a JavaScript deobfuscator that operates similar to my Java deobfuscator which was one of the first things I published on this blog. The general idea is automatically replace function names with random English verbs (since functions correspond to actions) and variable names with random animal names (I decided "English nouns" encompassed too broad a category of words). I suspect the day that someone releases a proprietary multimedia codec in a pure (though obfuscated) JavaScript format is that day that I will try to accomplish this, if it hasn’t been done already.

    See also :

  • 'arecord' works but FFMPEG 'cannot open audio device'

    16 mai 2020, par kwithnail

    On my Linux-based QNAP NAS, I can successfully record my Loopback audio device using :

    



    # arecord -D default:CARD=Loopback test.wav


    



    However, FFMPEG cannot use this same audio device. It returns :

    



        [alsa @ 0x5a45880] cannot open audio device hw:default:CARD=Loopback (No such file or directory)
hw:default:CARD=Loopback: Input/output error


    



    I've also tried any number of hw: options in FFMPEG. For what it's worth, the arecord -l command returns :

    



    **** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC262 Analog [ALC262 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Loopback [Loopback], device 0: Loopback PCM [Loopback PCM]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Loopback [Loopback], device 1: Loopback PCM [Loopback PCM]
  Subdevices: 1/1
  Subdevice #0: subdevice #0


    



    arecord -L returns :

    



    [~] # arecord -L
null
    Discard all samples (playback) or generate zero samples (capture)
sysdefault:CARD=PCH
    HDA Intel PCH, ALC262 Analog
    Default Audio Device
front:CARD=PCH,DEV=0
    HDA Intel PCH, ALC262 Analog
    Front speakers
sysdefault:CARD=Loopback
    Loopback, Loopback PCM
    Default Audio Device
front:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    Front speakers
surround21:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Loopback,DEV=0
    Loopback, Loopback PCM
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers


    



    FFMPEG command and response is :

    



    [~] # /share/CACHEDEV1_DATA/.qpkg/ffmpeg/ffmpeg -f alsa -i hw:default:CARD=Loopback test.mp3
ffmpeg version 4.2.1-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
  configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
ALSA lib ../../../src/pcm/pcm.c:2564:(snd_pcm_open_noupdate) Unknown PCM hw:default:CARD=Loopback
[alsa @ 0x5f64800] cannot open audio device hw:default:CARD=Loopback (No such file or directory)
hw:default:CARD=Loopback: Input/output error


    



    FFMPEG -sources alsa gives :

    



    [~] # /share/CACHEDEV1_DATA/.qpkg/ffmpeg/ffmpeg -sources alsa
ffmpeg version 4.2.1-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
  configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
  libavutil      56. 31.100 / 56. 31.100
  libavcodec     58. 54.100 / 58. 54.100
  libavformat    58. 29.100 / 58. 29.100
  libavdevice    58.  8.100 / 58.  8.100
  libavfilter     7. 57.100 /  7. 57.100
  libswscale      5.  5.100 /  5.  5.100
  libswresample   3.  5.100 /  3.  5.100
  libpostproc    55.  5.100 / 55.  5.100
Auto-detected sources for alsa:
ALSA lib ../../../src/control/control.c:1375:(snd_ctl_open_noupdate) Invalid CTL hw:0
Cannot list sources.


    



    Can anyone shed some light on why this is impossible in FFMPEG and suggest what I'm doing wrong here ? FFMPEG includes the ALSA module, and is version 4.2.1. Thanks !

    


  • Inconsistent crop and overflay ffmpeg result with drawImage canvas

    21 juin 2022, par yuno saga

    i try to encode the video block frame to specific pattern order, then in front-end it decode back to normal. I test it in back-end by decode back with same function, it back to normal. but in front-end with canvas the order of block not in right position. if you look into front-end function. it have same pattern. i try to check output from for generate, it equal to for in backend overlay builder command.
    
whats wrong with this ?

    


    ffmpeg config

    


    const { spawn } = require('child_process');

function hflip(width) {
    const sizeBlock = 16;
    let filterCommands = '';
    const length = Math.floor(width / sizeBlock);

    for (let i=0; i < length; i++) { 
        filterCommands += `[0]crop=${sizeBlock}:480:${(i*sizeBlock)}:0[c${i}];`;
    }
    
    for (let i=0; i < length; i++) {
        if (i == 0) filterCommands += '[0]';
        if (i != 0) filterCommands += `[o${i}]`;
    
        filterCommands += `[c${i}]overlay=x=${(width - sizeBlock)-(i*sizeBlock)}:y=0`;
    
        if (i != (length - 1)) filterCommands += `[o${i+1}];`;
    }

    return filterCommands;
}

const crops = spawn('ffmpeg', [
    '-i',
    'C:/Software Development/project/blackpink.mp4',
    '-filter_complex',
    hflip(854),
    '-c:a',
    'copy',
    '-c:v',
    'libx264',
    '-crf',
    '30',
    '-preset',
    'ultrafast',
    '-pix_fmt',
    'yuv420p',
    'C:/Software Development/project/hflip.mp4',
    '-y'
], {
    cwd: 'C:/Software Development/ffmpeg'
})


    


    front-end

    


    

    

    &#xA;&#xA;    &#xA;    &#xA;        <button>play</button>&#xA;        <code class="echappe-js">&lt;script&gt;&amp;#xA;            const canvas = document.createElement(&amp;#x27;canvas&amp;#x27;);&amp;#xA;            document.body.appendChild(canvas)&amp;#xA;            const context = canvas.getContext(&amp;#x27;2d&amp;#x27;);&amp;#xA;            const video = document.createElement(&amp;#x27;video&amp;#x27;);&amp;#xA;            video.src = &amp;#x27;https://drive.google.com/uc?export=download&amp;amp;id=1Z0aFg_N3kP0SUO_xOFB0UBjTRH6_mSmb&amp;amp;confirm=t&amp;#x27;&amp;#xA;&amp;#xA;&amp;#xA;            function hflip(video) {&amp;#xA;                const widthBlock = 16;&amp;#xA;                const heightBlock = 480;&amp;#xA;                const length = Math.floor(video.videoWidth / widthBlock);&amp;#xA;&amp;#xA;                for (let i=0; i &lt; length; i&amp;#x2B;&amp;#x2B;) {&amp;#xA;                    console.log({&amp;#xA;                        cX: (i*widthBlock),&amp;#xA;                        oX: (video.videoWidth - widthBlock) - (i*widthBlock)&amp;#xA;                    });&amp;#xA;&amp;#xA;                    context.drawImage(video, (i*widthBlock), 0, widthBlock, heightBlock,  (video.videoWidth - widthBlock) - (i*widthBlock), 0, widthBlock, heightBlock)&amp;#xA;                }&amp;#xA;            }&amp;#xA;&amp;#xA;            video.onloadedmetadata = () =&gt; {&amp;#xA;                context.canvas.width = video.videoWidth;&amp;#xA;                context.canvas.height = video.videoHeight;&amp;#xA;            }&amp;#xA;&amp;#xA;            video.onplay = () =&gt; {&amp;#xA;                const updateCanvas = () =&gt; {&amp;#xA;                    hflip(video);            &amp;#xA;&amp;#xA;                    video.requestVideoFrameCallback(updateCanvas);&amp;#xA;                }&amp;#xA;&amp;#xA;                updateCanvas();&amp;#xA;            }&amp;#xA;&amp;#xA;            function play() { video.play() }&amp;#xA;        &lt;/script&gt;&#xA;    &#xA;

    &#xD;&#xA;

    &#xD;&#xA;

    &#xD;&#xA;&#xA;