Recherche avancée

Médias (91)

Autres articles (55)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • List of compatible distributions

    26 avril 2011, par

    The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

Sur d’autres sites (12574)

  • youtube-dl (ffmpeg) blank error on embedding subtitles

    22 mars 2021, par Human1

    I am new to using youtube-dl, and therefore is quite unfamiliar with how it works. I configured it to download auto subs and english subs (if there were any), and embed them in the video. It worked for me for quite a good while (1 or 2 months), and it suddenly stopped working with blank errors starting to pop up, and I have no idea why that happened. I have checked that I am using the most updated version of youtube-dl and ffmpeg. I am currently using a m1 mac , and I don't know if that caused the problem. Below is the output I got with the -v command, as well as some background information.

    


    [debug] System config: []
[debug] User config: ['-o', '~/Documents/playlists/%(playlist)s/%(playlist_index)-i%(title)s.%(ext)s', '-f', 'mp4', '--write-sub', '--sub-lang', 'en', '--write-auto-sub', '--embed-subs']
[debug] Custom config: []
[debug] Command-line args: ['https://youtube.com/playlist?list=PL4cUxeGkcC9i3FXJSUfmsNOx8E7u6UuhG', '-v']
[debug] Encodings: locale UTF-8, fs utf-8, out utf-8, pref UTF-8
[debug] youtube-dl version 2021.03.14
[debug] Git HEAD: 59ada80ca
[debug] Python version 3.9.2 (CPython) - macOS-11.2.3-arm64-arm-64bit
[debug] exe versions: ffmpeg present, ffprobe present, rtmpdump 2.4
[debug] Proxy map: {}
[youtube:tab] PL4cUxeGkcC9i3FXJSUfmsNOx8E7u6UuhG: Downloading webpage
[download] Downloading playlist: CSS Flexbox Tutorial
[youtube:tab] playlist CSS Flexbox Tutorial: Downloading 12 videos
[download] Downloading video 1 of 12
[youtube] Y8zMYaD1bz0: Downloading webpage
[info] Writing video subtitles to: /Users/{username}/Documents/playlists/CSS Flexbox Tutorial/1CSS Flexbox Tutorial #1 - Introduction.en.vtt
[debug] Invoking downloader on 'https://r2---sn-45gpjx-3x4e.googlevideo.com/videoplayback?expire=1616392628&ei=VN1XYKikA9eo1gai6KegBg&ip=45.133.192.196&id=o-APtlxrUI2wU4tPFiSxBi5MzLnuR5EFYL3-TE-BpiPEYG&itag=22&source=youtube&requiressl=yes&mh=U3&mm=31%2C29&mn=sn-45gpjx-3x4e%2Csn-5hne6nlr&ms=au%2Crdu&mv=m&mvi=2&pl=24&initcwndbps=1155000&vprv=1&mime=video%2Fmp4&ns=r0wuXA2lBVMGhop9uJeEHHUF&ratebypass=yes&dur=317.161&lmt=1607169749865434&mt=1616370759&fvip=3&fexp=24001373%2C24007246&c=WEB&txp=5432434&n=_jK4PI5-7sa9Q0X2ye&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cns%2Cratebypass%2Cdur%2Clmt&sig=AOq0QJ8wRAIgR0wbVc18mWDheT_QVT5Jsbmd647wKJNyVfzGRJd_oOkCIArV-vvKQmD3D7W90dw1l9b3zaJQNzltitp3BJPt2fqA&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRgIhAI9I7LQw5zTAldgCydhe3yzicBgvxYfxeHxI8lCxh3sLAiEAlT8Dpf93fiPbdMI3rHOebH-nFkToCZr1VfWaoX0HVeg%3D'
[download] /Users/{username}/Documents/playlists/CSS Flexbox Tutorial/1CSS Flexbox Tutorial #1 - Introduction.mp4 has already been downloaded
[download] 100% of 16.50MiB
[ffmpeg] Embedding subtitles in '/Users/{username}/Documents/playlists/CSS Flexbox Tutorial/1CSS Flexbox Tutorial #1 - Introduction.mp4'
[debug] ffmpeg command line: ffmpeg -y -loglevel repeat+info -i 'file:/Users/{username}/Documents/playlists/CSS Flexbox Tutorial/1CSS Flexbox Tutorial #1 - Introduction.mp4' -i 'file:/Users/{username}/Documents/playlists/CSS Flexbox Tutorial/1CSS Flexbox Tutorial #1 - Introduction.en.vtt' -map 0 -c copy -map -0:s -map -0:d -c:s mov_text -map 1:0 -metadata:s:s:0 language=eng 'file:/Users/{username}/Documents/playlists/CSS Flexbox Tutorial/1CSS Flexbox Tutorial #1 - Introduction.temp.mp4'
ERROR: 
Traceback (most recent call last):
  File "/opt/homebrew/Cellar/youtube-dl/2021.3.14/libexec/lib/python3.9/site-packages/youtube_dl/YoutubeDL.py", line 2106, in post_process
    files_to_delete, info = pp.run(info)
  File "/opt/homebrew/Cellar/youtube-dl/2021.3.14/libexec/lib/python3.9/site-packages/youtube_dl/postprocessor/ffmpeg.py", line 426, in run
    self.run_ffmpeg_multiple_files(input_files, temp_filename, opts)
  File "/opt/homebrew/Cellar/youtube-dl/2021.3.14/libexec/lib/python3.9/site-packages/youtube_dl/postprocessor/ffmpeg.py", line 235, in run_ffmpeg_multiple_files
    raise FFmpegPostProcessorError(msg)
youtube_dl.postprocessor.ffmpeg.FFmpegPostProcessorError


    


    I would be very grateful if anyone can tell me what happened and what should I do next. Thanks ! ;)

    


  • FFmpeg return 'invalid argument' only for some runs, even tought is the same code

    20 septembre 2021, par Gustavo Marinho

    I have a code in python where i need to use FFmpeg to merge a audio and a video downloaded using pytube together :

    


            for video in p.videos:
            video.streams.filter(file_extension='mp4',resolution='480p')[0].download(parent_dir+'/mp4/processing/video')
            print(video.streams.filter(only_audio=True)[1].download(parent_dir+'/mp4/processing/audio'))

            subprocess.run([

                r'c:\FFmpeg\bin\ffmpeg', '-i',
                os.path.join(parent_dir+'/mp4/processing/video',video.streams.filter(file_extension='mp4',resolution='480p')[0].default_filename)
                ,'-i',
                os.path.join(parent_dir+'/mp4/processing/audio',video.streams.filter(only_audio=True)[1].default_filename),
                '-c:v','copy','-c:a','copy',
                os.path.join(parent_dir+'/mp4',video.streams.filter(file_extension='mp4',resolution='480p')[0].title+'.mp4')

            ])


    


    I tought the code was working perfectly, but in some cases, the FFmpeg returns "invalid argument", like this example :

    


    ffmpeg version 4.4-full_build-www.gyan.dev Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 10.2.0 (Rev6, 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-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libglslang --enable-vulkan --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      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'D:/videos/mp4/processing/video\Dropkick Murphys - Rose Tattoo (Video).mp4':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6avc1mp41
    creation_time   : 2020-04-04T10:16:52.000000Z
  Duration: 00:05:26.08, start: 0.000000, bitrate: 557 kb/s
  Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 854x480 [SAR 1:1 DAR 427:240], 7 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default)
    Metadata:
      creation_time   : 2020-04-04T10:16:52.000000Z
      handler_name    : ISO Media file produced by Google Inc.
      vendor_id       : [0][0][0][0]
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'D:/videos/mp4/processing/audio\Dropkick Murphys - Rose Tattoo (Video).mp4':
  Metadata:
    major_brand     : dash
    minor_version   : 0
    compatible_brands: iso6mp41
    creation_time   : 2020-04-04T10:16:00.000000Z
  Duration: 00:05:26.12, start: 0.000000, bitrate: 129 kb/s
  Stream #1:0(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 3 kb/s (default)
    Metadata:
      creation_time   : 2020-04-04T10:16:00.000000Z
      handler_name    : ISO Media file produced by Google Inc.
      vendor_id       : [0][0][0][0]
D:/videos/mp4\Dropkick Murphys - "Rose Tattoo" (Video).mp4: Invalid argument


    


    For some reason, the FFmpeg say that my output name is invalid, but i don't understand why, given that i ran the code multiple times before and it worked perfectly

    


    Thanks in advance, sorry for my bad english :3

    


  • Output black when I decode h264 720p with ffmpeg

    6 décembre 2017, par José Marqueses Saxo

    First, sorry for my english. When I decode h264 720p in ardrone2.0 my output is black and I cant see anything.

    I have try to change the value of pCodecCtx->pix_fmt = AV_PIX_FMT_BGR24; to pCodecCtx->pix_fmt = AV_PIX_FMT_YUV420P; and the value of pCodecCtxH264->pix_fmt = AV_PIX_FMT_BGR24; to pCodecCtxH264->pix_fmt = AV_PIX_FMT_YUV420P; but my program crash. What am I doing wrong ?. Thank you, see part of my code :

    av_register_all();
    avcodec_register_all();
    avformat_network_init();

    // 1.2. Open video file
    if(avformat_open_input(&pFormatCtx, drone_addr, NULL, NULL) != 0) {
     mexPrintf("No conecct with Drone");
     EndVideo();
     return;
    }

    pCodec    = avcodec_find_decoder(AV_CODEC_ID_H264);

    pCodecCtx = avcodec_alloc_context3(pCodec);
    pCodecCtx->pix_fmt = AV_PIX_FMT_BGR24;
    pCodecCtx->skip_frame = AVDISCARD_DEFAULT;
    pCodecCtx->error_concealment = FF_EC_GUESS_MVS | FF_EC_DEBLOCK;
    pCodecCtx->err_recognition = AV_EF_CAREFUL;
    pCodecCtx->skip_loop_filter = AVDISCARD_DEFAULT;
    pCodecCtx->workaround_bugs = FF_BUG_AUTODETECT;
    pCodecCtx->codec_type = AVMEDIA_TYPE_VIDEO;
    pCodecCtx->codec_id = AV_CODEC_ID_H264;
    pCodecCtx->skip_idct = AVDISCARD_DEFAULT;
    pCodecCtx->width = 1280;
    pCodecCtx->height = 720;

    pCodecH264 = avcodec_find_decoder(AV_CODEC_ID_H264);
    pCodecCtxH264 = avcodec_alloc_context3(pCodecH264);


    pCodecCtxH264->pix_fmt = AV_PIX_FMT_BGR24;
    pCodecCtxH264->skip_frame = AVDISCARD_DEFAULT;
    pCodecCtxH264->error_concealment = FF_EC_GUESS_MVS | FF_EC_DEBLOCK;
    pCodecCtxH264->err_recognition = AV_EF_CAREFUL;
    pCodecCtxH264->skip_loop_filter = AVDISCARD_DEFAULT;
    pCodecCtxH264->workaround_bugs = FF_BUG_AUTODETECT;
    pCodecCtxH264->codec_type = AVMEDIA_TYPE_VIDEO;
    pCodecCtxH264->codec_id = AV_CODEC_ID_H264;
    pCodecCtxH264->skip_idct = AVDISCARD_DEFAULT;

    if(avcodec_open2(pCodecCtxH264, pCodecH264, &optionsDict) < 0)
    {
      mexPrintf("Error opening H264 codec");
      return ;
    }

    pFrame_BGR24 = av_frame_alloc();


    if(pFrame_BGR24 == NULL) {
      mexPrintf("Could not allocate pFrame_BGR24\n");
      return ;
    }

    // Determine required buffer size and allocate buffer

    buffer_BGR24 =
    (uint8_t *)av_mallocz(av_image_get_buffer_size(AV_PIX_FMT_BGR24,
    pCodecCtx->width, ((pCodecCtx->height == 720) ? 720 : pCodecCtx->height) *
    sizeof(uint8_t)*3,1));

    // Assign buffer to image planes

    av_image_fill_arrays(pFrame_BGR24->data, pFrame_BGR24->linesize,
    buffer_BGR24,AV_PIX_FMT_BGR24, pCodecCtx->width, pCodecCtx->height,1);

    // format conversion context
    pConvertCtx_BGR24 = sws_getContext(pCodecCtx->width, pCodecCtx->height,
    pCodecCtx->pix_fmt, pCodecCtx->width, pCodecCtx->height,  AV_PIX_FMT_BGR24,
                                    SWS_BILINEAR | SWS_ACCURATE_RND, 0, 0, 0);

    // 1.6. get video frames
    pFrame = av_frame_alloc();

    av_init_packet(&packet);
    packet.data = NULL;
    packet.size = 0;
    }

    //Captura un frame
    void video::capture(mxArray *plhs[]) {

     if(av_read_frame(pFormatCtx, &packet) < 0){
         mexPrintf("Error al leer frame");
         return;
     }
      do {
          do {
             rest = avcodec_send_packet(pCodecCtxH264, &packet);
          } while(rest == AVERROR(EAGAIN));

          if(rest == AVERROR_EOF || rest == AVERROR(EINVAL)) {
                   printf("AVERROR(EAGAIN): %d, AVERROR_EOF: %d,
                   AVERROR(EINVAL): %d\n", AVERROR(EAGAIN), AVERROR_EOF,
                   AVERROR(EINVAL));
               printf("fe_read_frame: Frame getting error (%d)!\n", rest);
               return;
          }

          rest = avcodec_receive_frame(pCodecCtxH264, pFrame);
      } while(rest == AVERROR(EAGAIN));

      if(rest == AVERROR_EOF || rest == AVERROR(EINVAL)) {

       // An error or EOF occured,index break out and return what
       // we have so far.
         printf("AVERROR(EAGAIN): %d, AVERROR_EOF: %d, AVERROR(EINVAL): %d\n",
         AVERROR(EAGAIN), AVERROR_EOF, AVERROR(EINVAL));
           printf("fe_read_frame: EOF or some othere decoding error (%d)!\n",
           rest);
           return;
      }


      // 2.1.1. convert frame to GRAYSCALE [or BGR] for OpenCV
      sws_scale(pConvertCtx_BGR24,   (const uint8_t* const*)pFrame->data,
          pFrame->linesize, 0,pCodecCtx->height,   pFrame_BGR24->data,  
                pFrame_BGR24->linesize);
    //}
      av_packet_unref(&packet);
      av_init_packet(&packet);
      mwSize dims[] = {(pCodecCtx->width)*((pCodecCtx->height == 720) ? 720 :
      pCodecCtx->height)*sizeof(uint8_t)*3};
      plhs[0] = mxCreateNumericArray(1,dims,mxUINT8_CLASS, mxREAL);
       //plhs[0]=mxCreateDoubleMatrix(pCodecCtx->height,pCodecCtx-
       >width,mxREAL);
      point=mxGetPr(plhs[0]);
      memcpy(point, pFrame_BGR24->data[0],(pCodecCtx->width)*(pCodecCtx-
       >height)*sizeof(uint8_t)*3);
    }