Recherche avancée

Médias (1)

Mot : - Tags -/biographie

Autres articles (24)

  • MediaSPIP Core : La Configuration

    9 novembre 2010, par

    MediaSPIP Core fournit par défaut trois pages différentes de configuration (ces pages utilisent le plugin de configuration CFG pour fonctionner) : une page spécifique à la configuration générale du squelettes ; une page spécifique à la configuration de la page d’accueil du site ; une page spécifique à la configuration des secteurs ;
    Il fournit également une page supplémentaire qui n’apparait que lorsque certains plugins sont activés permettant de contrôler l’affichage et les fonctionnalités spécifiques (...)

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

  • Use, discuss, criticize

    13 avril 2011, par

    Talk to people directly involved in MediaSPIP’s development, or to people around you who could use MediaSPIP to share, enhance or develop their creative projects.
    The bigger the community, the more MediaSPIP’s potential will be explored and the faster the software will evolve.
    A discussion list is available for all exchanges between users.

Sur d’autres sites (4101)

  • FFmpeg C Api - Reduce fps but maintain video duration

    25 mars 2015, par Justin Bradley

    Using the FFmpeg C API I’m trying to convert an input video into a video that looks like an animated gif - meaning no audio stream and a video stream of 4/fps.

    I have the decode/encode part working. I can drop the audio stream from the output file, but I’m having trouble reducing the fps. I can change the output video stream’s time_base to 4/fps, but it increases the video’s duration - basically playing it in slow mo.

    I think I need to drop the extra frames before I write them to the output container.

    Below is the loop where I read the input frames, and then write them to output container.

    Is this where I’d drop the extra frames ? How do I determine which frames to drop (I,P,B frames) ?

    while(av_read_frame(input_container, &decoded_packet)>=0) {

       if (decoded_packet.stream_index == video_stream_index) {
           len = avcodec_decode_video2(input_stream->codec, decoded_frame, &got_frame, &decoded_packet);
           if(len < 0) {
               exit(1);
           }

           if(got_frame) {
               av_init_packet(&encoded_packet);
               encoded_packet.data =  NULL;
               encoded_packet.size =  0;

               if(avcodec_encode_video2(output_stream->codec, &encoded_packet, decoded_frame, &got_frame) < 0) {
                   exit(1);
               }
               if(got_frame) {
                   if (output_stream->codec->coded_frame->key_frame) {
                       encoded_packet.flags |= AV_PKT_FLAG_KEY;
                   }

                   encoded_packet.stream_index = output_stream->index;
                   encoded_packet.pts = av_rescale_q(current_frame_num, output_stream->codec->time_base, output_stream->time_base);
                   encoded_packet.dts = av_rescale_q(current_frame_num, output_stream->codec->time_base, output_stream->time_base);

                   if(av_interleaved_write_frame(output_container, &encoded_packet) < 0) {
                       exit(1);
                   }
                   else {
                       current_frame_num +=1;
                   }
               }
               frame_count+=1;
               av_free_packet(&encoded_packet);
           }
       }
    }
  • ffmpeg quality conversion options (video compression)

    25 septembre 2020, par Jason Hunter

    Can you provide a link, or an explanation, to the -q:v 1 argument that deals with video/image quality, and compression, in ffmpeg.

    


    Let me explain...

    


    for f in *
   do 
     extension="${f##*.}"
     filename="${f%.*}"
     ffmpeg -i "$f" -q:v 1 "$filename"_lq."$extension"
     rm -f "$f"
   done


    


    The ffmpeg for loop above compresses all images and videos in your working directory, it basically lowers the quality which results in smaller file sizes (the desired outcome).

    


    I'm most interested in the -q:v 1 argument of this for loop. The 1 in the -q:v 1 argument is what controls the amount of compression. But I can't find any documentation describing how to change this value of 1, and describing what it does. Is it a percentage ? Multiplier ? How do I adjust this knob ? Can/should I use negative values ? Integers only ? Min/max values ? etc.

    


    I started with the official documentation but the best I could find was a section on video quality, and the -q flag description is sparse.

    


    


    -frames[:stream_specifier] framecount (output,per-stream)
    
Stop writing to the stream after framecount frames.
    
.
    
-q[:stream_specifier] q (output,per-stream)
    

    
-qscale[:stream_specifier] q (output,per-stream)
    
Use fixed quality scale (VBR). The meaning of q/qscale is codec-dependent. If qscale is used without a stream_specifier then it applies only to the video stream, this is to maintain compatibility with previous behavior and as specifying the same codec specific value to 2 different codecs that is audio and video generally is not what is intended when no stream_specifier is used.

    


    


  • Error while processing the decoded data for stream using ffmpeg

    15 juin 2018, par Robert Smith

    I am using the following command :

    ffmpeg

       -i "video1a.flv"
       -i "video1b.flv"
       -i "video1c.flv"
       -i "video2a.flv"
       -i "video3a.flv"
       -i "video4a.flv"
       -i "video4b.flv"
       -i "video4c.flv"
       -i "video4d.flv"
       -i "video4e.flv"

       -filter_complex

       nullsrc=size=640x480[base];
       [0:v]setpts=PTS-STARTPTS+0.12/TB,scale=320x240[1a];
       [1:v]setpts=PTS-STARTPTS+3469.115/TB,scale=320x240[1b];
       [2:v]setpts=PTS-STARTPTS+7739.299/TB,scale=320x240[1c];
       [5:v]setpts=PTS-STARTPTS+4390.466/TB,scale=320x240[4a];
       [6:v]setpts=PTS-STARTPTS+6803.937/TB,scale=320x240[4b];
       [7:v]setpts=PTS-STARTPTS+8242.005/TB,scale=320x240[4c];
       [8:v]setpts=PTS-STARTPTS+9811.577/TB,scale=320x240[4d];
       [9:v]setpts=PTS-STARTPTS+10765.19/TB,scale=320x240[4e];
       [base][1a]overlay=eof_action=pass[o1];
       [o1][1b]overlay=eof_action=pass[o1];
       [o1][1c]overlay=eof_action=pass:shortest=1[o1];
       [o1][4a]overlay=eof_action=pass:x=320:y=240[o4];
       [o4][4b]overlay=eof_action=pass:x=320:y=240[o4];
       [o4][4c]overlay=eof_action=pass:x=320:y=240[o4];
       [o4][4d]overlay=eof_action=pass:x=320:y=240[o4];
       [o4][4e]overlay=eof_action=pass:x=320:y=240;
       [0:a]asetpts=PTS-STARTPTS+0.12/TB,aresample=async=1,pan=1c|c0=c0,apad[a1a];
       [1:a]asetpts=PTS-STARTPTS+3469.115/TB,aresample=async=1,pan=1c|c0=c0,apad[a1b];
       [2:a]asetpts=PTS-STARTPTS+7739.299/TB,aresample=async=1,pan=1c|c0=c0[a1c];
       [3:a]asetpts=PTS-STARTPTS+82.55/TB,aresample=async=1,pan=1c|c0=c0,apad[a2a];
       [4:a]asetpts=PTS-STARTPTS+2687.265/TB,aresample=async=1,pan=1c|c0=c0,apad[a3a];
       [a1a][a1b][a1c][a2a][a3a]amerge=inputs=5

       -c:v libx264 -c:a aac -ac 2 output.mp4

    This is the stream data from ffmpeg :

    Input #0
       Stream #0:0: Video: vp6f, yuv420p, 160x128, 1k tbr, 1k tbn
       Stream #0:1: Audio: nellymoser, 11025 Hz, mono, flt
    Input #1
       Stream #1:0: Audio: nellymoser, 11025 Hz, mono, flt
       Stream #1:1: Video: vp6f, yuv420p, 160x128, 1k tbr, 1k tbn
    Input #2
       Stream #2:0: Audio: nellymoser, 11025 Hz, mono, flt
       Stream #2:1: Video: vp6f, yuv420p, 160x128, 1k tbr, 1k tbn
    Input #3
       Stream #3:0: Audio: nellymoser, 11025 Hz, mono, flt
    Input #4
       Stream #4:0: Audio: nellymoser, 11025 Hz, mono, flt
    Input #5
       Stream #5:0: Video: vp6f, yuv420p, 1680x1056, 1k tbr, 1k tbn
    Input #6
       Stream #6:0: Video: vp6f, yuv420p, 1680x1056, 1k tbr, 1k tbn
    Input #7
       Stream #7:0: Video: vp6f, yuv420p, 1680x1056, 1k tbr, 1k tbn
    Input #8
       Stream #8:0: Video: vp6f, yuv420p, 1680x1056, 1k tbr, 1k tbn
    Input #9
       Stream #9:0: Video: vp6f, yuv420p, 1680x1056, 1k tbr, 1k tbn
    Stream mapping:
     Stream #0:0 (vp6f) -> setpts
     Stream #0:1 (nellymoser) -> asetpts
     Stream #1:0 (nellymoser) -> asetpts
     Stream #1:1 (vp6f) -> setpts
     Stream #2:0 (nellymoser) -> asetpts
     Stream #2:1 (vp6f) -> setpts
     Stream #3:0 (nellymoser) -> asetpts
     Stream #4:0 (nellymoser) -> asetpts
     Stream #5:0 (vp6f) -> setpts
     Stream #6:0 (vp6f) -> setpts
     Stream #7:0 (vp6f) -> setpts
     Stream #8:0 (vp6f) -> setpts
     Stream #9:0 (vp6f) -> setpts
     overlay -> Stream #0:0 (libx264)
     amerge -> Stream #0:1 (aac)

    This is the error :

    Press [q] to stop, [?] for help

    Enter command: <target>|all <time>|-1 <command>[ <argument>]

    Parse error, at least 3 arguments were expected, only 1 given in string 'ho Oscar'
    [Parsed_amerge_44 @ 0a7238c0] No channel layout for input 1
    [Parsed_amerge_44 @ 0a7238c0] Input channel layouts overlap: output layout will be determined by the number of distinct input channels
    [Parsed_pan_27 @ 07681880] Pure channel mapping detected: 0
    [Parsed_pan_31 @ 07681b40] Pure channel mapping detected: 0
    [Parsed_pan_35 @ 0a7232c0] Pure channel mapping detected: 0
    [Parsed_pan_38 @ 0a7234c0] Pure channel mapping detected: 0
    [Parsed_pan_42 @ 0a723740] Pure channel mapping detected: 0
    [libx264 @ 069e8a40] using SAR=1/1
    [libx264 @ 069e8a40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [libx264 @ 069e8a40] profile High, level 3.0
    [libx264 @ 069e8a40] 264 - core 155 r2901 7d0ff22 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - 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=15 lookahead_threads=2 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=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to 'output.mp4':
     Metadata:
       canSeekToEnd    : false
       encoder         : Lavf58.16.100
       Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p(progressive), 640x480 [SAR 1:1 DAR 4:3], q=-1--1, 25 fps, 12800 tbn, 25 tbc (default)
       Metadata:
         encoder         : Lavc58.19.102 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
       Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D), 11025 Hz, stereo, fltp, 128 kb/s (default)
       Metadata:
         encoder         : Lavc58.19.102 aac
    frame=  200 fps=0.0 q=28.0 size=       0kB time=00:00:07.82 bitrate=   0.0kbits/s speed=15.6x    
    ...  
    frame=30132 fps=497 q=28.0 size=   29952kB time=00:20:05.14 bitrate= 203.6kbits/s speed=19.9x    
    Error while filtering: Cannot allocate memory
    Failed to inject frame into filter network: Cannot allocate memory
    Error while processing the decoded data for stream #2:1
    [libx264 @ 069e8a40] frame I:121   Avg QP: 8.83  size:  7052
    [libx264 @ 069e8a40] frame P:7609  Avg QP:18.33  size:  1527
    [libx264 @ 069e8a40] frame B:22367 Avg QP:25.44  size:   112
    [libx264 @ 069e8a40] consecutive B-frames:  0.6%  0.7%  1.0% 97.8%
    [libx264 @ 069e8a40] mb I  I16..4: 75.7% 18.3%  6.0%
    [libx264 @ 069e8a40] mb P  I16..4:  0.3%  0.7%  0.1%  P16..4: 10.6%  3.3%  1.6%  0.0%  0.0%    skip:83.4%
    [libx264 @ 069e8a40] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  3.2%  0.2%  0.0%  direct: 0.2%  skip:96.5%  L0:47.7% L1:48.2% BI: 4.0%
    [libx264 @ 069e8a40] 8x8 transform intra:37.4% inter:70.2%
    [libx264 @ 069e8a40] coded y,uvDC,uvAC intra: 38.9% 46.1% 28.7% inter: 1.7% 3.3% 0.1%
    [libx264 @ 069e8a40] i16 v,h,dc,p: 78%  8%  4% 10%
    [libx264 @ 069e8a40] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 33% 20% 12%  3%  6%  8%  6%  6%  7%
    [libx264 @ 069e8a40] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 37% 22%  9%  4%  6%  7%  5%  5%  4%
    [libx264 @ 069e8a40] i8c dc,h,v,p: 60% 16% 17%  7%
    [libx264 @ 069e8a40] Weighted P-Frames: Y:0.7% UV:0.6%
    [libx264 @ 069e8a40] ref P L0: 65.5% 12.3% 14.2%  8.0%  0.0%
    [libx264 @ 069e8a40] ref B L0: 90.2%  7.5%  2.3%
    [libx264 @ 069e8a40] ref B L1: 96.4%  3.6%
    [libx264 @ 069e8a40] kb/s:99.58
    [aac @ 069e9600] Qavg: 65519.982
    [aac @ 069e9600] 2 frames left in the queue on closing
    Conversion failed!
    </argument></command></time></target>

    I am trying to figure out how to fix these errors :

    Error while filtering: Cannot allocate memory
    Failed to inject frame into filter network: Cannot allocate memory
    Error while processing the decoded data for stream #2:1

    Observation #1

    If I run the following command on stream #2:1 by itself :

    ffmpeg -i video1c.flv -vcodec libx264 -acodec aac video1c.mp4

    The files is converted fine with no errors.

    Observation #2

    Running MediaInfo on video1c.flv (stream #2) shows the following :

    Format: Flash Video
    Video Codecs: On2 VP6
    Audio Codecs: Nellymoser

    Any help would be appreciated in resolving this error.

    Update #1

    I have tried splitting the filter graph into two as requested but I receive the same errors :

    Error while filtering: Cannot allocate memory
    Failed to inject frame into filter network: Cannot allocate memory
    Error while processing the decoded data for stream #1:1

    However, I did discover something, if I try to bring up stream #1:1 mentioned above (video1b.flv) using VLC Media Player, I can hear the audio file but I cannot see the video and I receive this error message :

    No suitable decoder module:
    VLC Does not support the audio or video format "undf".
    Unfortunately there is no way for you to fix this.

    Update #2

    The above error was with the 32bit version of ffmpeg. I switched to a 64 bit machine and am now running the 64 bit ffmpeg version ffmpeg-20180605-b748772-win64-static.

    Now I no longer receive the following error :

    Error while processing the decoded data for stream #1:1

    But, I have a new error. About an hour into running it, I receive the following error :

    av_interleaved_write_frame(): Cannot allocate memory
    [mp4 @ 000000000433f080] Application provided duration: 3327365388930198318
    / timestamp: 17178820096 is out of range for mov/mp4 format

    I also tried first remuxing all the files as suggested and using those files to run the above command and that did not help. I still get the same error.