Recherche avancée

Médias (2)

Mot : - Tags -/map

Autres articles (35)

  • 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

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • De l’upload à la vidéo finale [version standalone]

    31 janvier 2010, par

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)

Sur d’autres sites (5978)

  • HOW TO APPLY TRANSITION EFFECTS IN FFMPEG ? [closed]

    8 janvier 2023, par SMART

    I have 7 videos with audio, i tried to apply transition effects on these files, written code in python for this , i got error .

    


    python code :
import subprocess as sp

    


        def runffmpeg(cmd):
        try:
            pipe = sp.Popen(cmd, stdout=sp.PIPE, stderr=sp.STDOUT,
                            universal_newlines=True)
    
            ffmpeg_output, _ = pipe.communicate()
    
            print(ffmpeg_output)
            return (ffmpeg_output)
    
        except sp.CalledProcessError as err:
            print("FFmpeg stdout output on error:\n" + err.output)
    
    def get_duration(fn):
        cmd = (
            f"ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 {fn}")
    
        cmd1 = (
            f"ffprobe -v error -of flat=s_ -select_streams 1 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 {fn}")
        try:
            pipe = sp.Popen(cmd, stdout=sp.PIPE, stderr=sp.STDOUT,
                            universal_newlines=True)
    
            viddur, _ = pipe.communicate()
    
            print(viddur)
    
            pipe = sp.Popen(cmd1, stdout=sp.PIPE, stderr=sp.STDOUT,
                            universal_newlines=True)
    
            auddur, _ = pipe.communicate()
    
            try:
                auddur = float(auddur.strip())
            except:
                auddur = 0
    
            print(auddur)
    
            # if (len(auddur) == 0):
            #     auddur = 0
    
            return float(viddur.strip()), (auddur)
    
        except sp.CalledProcessError as err:
            print("FFmpeg stdout output on error:\n" + err.output)
    
    
    def trans(clips, effects, out="trans.mp4"):
        filtc = " [v1][v2]xfade=wipedown:duration=1:offset=4[x1];"
        i = 0
        fcv = ""
        fca = ""
        d1 = 0
        af = ""
        dur = []
        aud = []
        inp = ""
        j = 0
        print(len(clips))
    
        for x in clips:
            print(x[0])
            inp = (inp + " -i " + x)
    
            print(effects[0])
            print(x)
    
            v, a = get_duration(fn=x)
            dur.append(v)
    
        k = 0
        for x in dur:
    
            if (k == 0):
                fca = (fca + f"[{k}:a]adelay=0|0 [a{k+1}];")
            else:
                fca = (fca + f"[{k}:a]adelay={d1}|{d1} [a{k+1}];")
            aud.append(f"[a{k+1}]")
            k = (k+1)
            d1 = (d1+((x*1000)+3.5))
    
        d1 = 0
        for x in efects:
            for v in range(0, j+1, +1):
                d1 = (d1 + dur[v])
                d1 = (d1-((v+1)*3.5))
            # [0:a]adelay=0|0 [a1];
            if (i > 1):
    
                try:
                    fcv = (
                        fcv+f"[x{(i)}][{(i)}:v]xfade={x}:duration=3:offset={d1} [x{(i+1)}];")
                except:
                    pass
            else:
                print("j = %d" % j)
                fcv = (
                    fcv+f"[{(i)}:v][{(i+1)}:v]xfade={x}:duration=3:offset={d1} [x{(i+1)}];")
    
            j = (j+1)
            i = (i+1)
    
        for a in aud:
            af = (af+a)
        af = (af+f"amix=inputs={len(aud)} [faud]")
    
        inp = (inp+" -filter_complex \"")
        cmd = (
            f"ffmpeg {inp} {fcv} {fca} {af} \" -pix_fmt yuv420p -map \"[x{i}]\" -map \"[faud]\" -y {out}")
    
        print(cmd)
    
        try:
            pipe = sp.Popen(cmd, stdout=sp.PIPE, stderr=sp.STDOUT,
                            universal_newlines=True)
    
            ffmpeg_output, _ = pipe.communicate()
    
            print(ffmpeg_output)
    
        except sp.CalledProcessError as err:
            print("FFmpeg stdout output on error:\n" + err.output)
            
            


    


    these functions creates ffmpeg code like :
ffmpeg -i out1.mp4 -i out2.mp4 -i out3.mp4 -i out4.mp4 -i out5.mp4 -i out6.mp4 -i out7.mp4 -filter_complex " [0:v][1:v]xfade=wipedown:duration=3:offset=6.006009000000001 [x1] ;[1:v][2:v]xfade=dissolve:duration=3:offset=14.030023 [x2] ;[x2][2:v]xfade=pixelize:duration=3:offset=20.572042000000003 [x3] ;[x3][3:v]xfade=vuslice:duration=3:offset=21.621068000000008 [x4] ;[x4][4:v]xfade=radial:duration=3:offset=14.188099000000015 [x5] ;[x5][5:v]xfade=vertopen:duration=3:offset=-5.737862999999978 [x6] ; [0:a]adelay=0|0 [a1] ;[1:a]adelay=9509.509|9509.509 [a2] ;[2:a]adelay=18531.014000000003|18531.014000000003 [a3] ;[3:a]adelay=27552.519000000004|27552.519000000004 [a4] ;[4:a]adelay=36063.026000000005|36063.026000000005 [a5] ;[5:a]adelay=45084.531|45084.531 [a6] ;[6:a]adelay=53595.038|53595.038 [a7] ; [a1][a2][a3][a4][a5][a6][a7]amix=inputs=7 [faud] " -pix_fmt yuv420p -map "[x6]" -map "[faud]" -y trans.mp4

    


    this ffmpeg command generates error :

    


        ffmpeg version 2022-12-25-git-eeb280f351-full_build-www.gyan.dev Copyright (c) 2000-2022 the FFmpeg developers
      built with gcc 12.1.0 (Rev2, Built by MSYS2 project)
      configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
      libavutil      57. 43.100 / 57. 43.100
      libavcodec     59. 55.103 / 59. 55.103
      libavformat    59. 34.102 / 59. 34.102
      libavdevice    59.  8.101 / 59.  8.101
      libavfilter     8. 53.100 /  8. 53.100
      libswscale      6.  8.112 /  6.  8.112
      libswresample   4.  9.100 /  4.  9.100
      libpostproc    56.  7.100 / 56.  7.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'out1.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        encoder         : Lavf59.34.102
      Duration: 00:00:09.51, start: 0.000000, bitrate: 1358 kb/s
      Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/unknown/unknown, progressive), 1080x1920, 1303 kb/s, 26.94 fps, 25 tbr, 1000k tbn (default)
        Metadata:
          handler_name    : VideoHandler
          vendor_id       : [0][0][0][0]
          encoder         : Lavc59.55.103 libx264
      Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 51 kb/s (default)
        Metadata:
          handler_name    : SoundHandler
          vendor_id       : [0][0][0][0]
    Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'out2.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        encoder         : Lavf59.34.102
      Duration: 00:00:09.02, start: 0.000000, bitrate: 1060 kb/s
      Stream #1:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/unknown/unknown, progressive), 1080x1920, 1007 kb/s, 26.73 fps, 25 tbr, 1000k tbn (default)
        Metadata:
          handler_name    : VideoHandler
          vendor_id       : [0][0][0][0]
          encoder         : Lavc59.55.103 libx264
      Stream #1:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 47 kb/s (default)
        Metadata:
          handler_name    : SoundHandler
          vendor_id       : [0][0][0][0]
    Input #2, mov,mp4,m4a,3gp,3g2,mj2, from 'out3.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        encoder         : Lavf59.34.102
      Duration: 00:00:09.02, start: 0.000000, bitrate: 1228 kb/s
      Stream #2:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/unknown/unknown, progressive), 1080x1920, 1178 kb/s, 26.73 fps, 25 tbr, 1000k tbn (default)
        Metadata:
          handler_name    : VideoHandler
          vendor_id       : [0][0][0][0]
          encoder         : Lavc59.55.103 libx264
      Stream #2:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 46 kb/s (default)
        Metadata:
          handler_name    : SoundHandler
          vendor_id       : [0][0][0][0]
    Input #3, mov,mp4,m4a,3gp,3g2,mj2, from 'out4.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        encoder         : Lavf59.34.102
      Duration: 00:00:08.51, start: 0.000000, bitrate: 987 kb/s
      Stream #3:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/unknown/unknown, progressive), 1080x1920, 938 kb/s, 26.57 fps, 25 tbr, 1000k tbn (default)
        Metadata:
          handler_name    : VideoHandler
          vendor_id       : [0][0][0][0]
          encoder         : Lavc59.55.103 libx264
      Stream #3:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 43 kb/s (default)
        Metadata:
          handler_name    : SoundHandler
          vendor_id       : [0][0][0][0]
    Input #4, mov,mp4,m4a,3gp,3g2,mj2, from 'out5.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        encoder         : Lavf59.34.102
      Duration: 00:00:09.02, start: 0.000000, bitrate: 1221 kb/s
      Stream #4:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/unknown/unknown, progressive), 1080x1920, 1170 kb/s, 26.73 fps, 25 tbr, 1000k tbn (default)
        Metadata:
          handler_name    : VideoHandler
          vendor_id       : [0][0][0][0]
          encoder         : Lavc59.55.103 libx264
      Stream #4:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 47 kb/s (default)
        Metadata:
          handler_name    : SoundHandler
          vendor_id       : [0][0][0][0]
    Input #5, mov,mp4,m4a,3gp,3g2,mj2, from 'out6.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        encoder         : Lavf59.34.102
      Duration: 00:00:08.51, start: 0.000000, bitrate: 1073 kb/s
      Stream #5:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/unknown/unknown, progressive), 1080x1920, 1027 kb/s, 26.57 fps, 25 tbr, 1000k tbn (default)
        Metadata:
          handler_name    : VideoHandler
          vendor_id       : [0][0][0][0]
          encoder         : Lavc59.55.103 libx264
      Stream #5:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 41 kb/s (default)
        Metadata:
          handler_name    : SoundHandler
          vendor_id       : [0][0][0][0]
    Input #6, mov,mp4,m4a,3gp,3g2,mj2, from 'out7.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        encoder         : Lavf59.34.102
      Duration: 00:00:09.02, start: 0.000000, bitrate: 757 kb/s
      Stream #6:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuvj420p(pc, bt470bg/unknown/unknown, progressive), 1080x1920, 705 kb/s, 26.73 fps, 25 tbr, 1000k tbn (default)
        Metadata:
          handler_name    : VideoHandler
          vendor_id       : [0][0][0][0]
          encoder         : Lavc59.55.103 libx264
      Stream #6:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 46 kb/s (default)
        Metadata:
          handler_name    : SoundHandler
          vendor_id       : [0][0][0][0]
    Filter xfade:default has an unconnected output


    


    Filter xfade:default has an unconnected output , what does it mean ?

    


    in adelay area , getting -ve nos , what to do ?

    


    #useage :

    


    vc = ["C1.mp4", "C2.mp4", "C3.mp4", "C4.mp4", "C5.mp4", "C6.mp4", "C7.mp4"]

    


        i = 1
    gc = []
    for x in vc:
        gc.append(f"out{i}.mp4")
        i = (i+1)
    
    print(gc)
    
    trans(clips=gc, effects=efects)


    


    system details :
windows 10 64 bits
python 3.9 64 bits

    


  • Impossible to redirect video stream after conversion (mkv to mp4)

    17 décembre 2019, par elgrusko

    I’m currently realising a school project which aims a streaming video website (like Netflix) using torrent-stream (with the magnet link). I am using NodeJS for the stream part.

    My problem is : I can’t redirect the stream to the HTML 5 player while i’m trying to stream and converting (with ffmpeg) video at the same time. I think it’s because I just can’t know what’s will be the final size of the converted file.
    In browser’s console I have this message : net::ERR_CONTENT_LENGTH_MISMATCH 200 (OK)

    I tried to put this in the header : Transfer-Encoding: chunked instead of Content-Length
    I specify that the stream (before conversion) works perfectly

    This is my code :

    getTorrentFile.then(function (file) {
                   res.setHeader('Content-Type', 'video/mp4');
                   res.setHeader('Content-Length', file.length);
                   const ranges = parseRange(file.length, '15' /* variable à comprendre */, { combine: true });
                   console.log(ranges);
                   if (ranges === -1) {
                       // 416 Requested Range Not Satisfiable
                       console.log('416')
                       res.statusCode = 416;
                       return res.end();
                   } else if (ranges === -2 || ranges.type !== 'bytes' || ranges.length > 1) {
                       // 200 OK requested range malformed or multiple ranges requested, stream ent'ire video
                       if (req.method !== 'GET') return res.end();
                       console.log('200')
                       stream = file.createReadStream()
                       ffmpeg(stream)
                       .videoCodec('libx264')
                       .audioCodec('aac')
                       .output(res)
                       .output('./video/' + film + '_s' + season + '_e' + episode + '.mp4')
                       .outputFormat('mp4')
                       .outputOptions('-movflags frag_keyframe+empty_moov')
                       .on('error', function(err) {
                           console.log('An error occurred: ' + err.message);
                       })
                       .on('progress', function(progress) {
                           console.log('Processing: ' + progress.targetSize + 'kb done');
                         })
                       .on('end', function() {
                           console.log('Processing finished !');
                       })
                       .addOutputOption('-acodec')
                       .run()

    Sorry if i’m not really clear, ask me some questions if you need more informations :)

    Thanks for your help, bye :)

  • iff : distinguish fields for audio and video compression

    10 mai 2011, par Stefano Sabatini

    iff : distinguish fields for audio and video compression