Recherche avancée

Médias (1)

Mot : - Tags -/berlin

Autres articles (47)

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

  • Configuration spécifique d’Apache

    4 février 2011, par

    Modules spécifiques
    Pour la configuration d’Apache, il est conseillé d’activer certains modules non spécifiques à MediaSPIP, mais permettant d’améliorer les performances : mod_deflate et mod_headers pour compresser automatiquement via Apache les pages. Cf ce tutoriel ; mode_expires pour gérer correctement l’expiration des hits. Cf ce tutoriel ;
    Il est également conseillé d’ajouter la prise en charge par apache du mime-type pour les fichiers WebM comme indiqué dans ce tutoriel.
    Création d’un (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

Sur d’autres sites (7681)

  • FFmpeg generates different number of frame for ORIGINAL and CONVERTED files even though they have same duration and frame rate

    24 février 2021, par Mahfujur Rahman

    I have two files with the following configuration. I am extracting frames using FFmpeg and then encoding the frames with MediaCodec using the frame duration to calculate timestamp in android.

    


    While processing the first file, FFmpeg generates around 3000 plus frames but for the second file, FFmpeg generates only around 1500 frames.

    


    As I am using the frame duration to encode video, the output video duration changes for the above case. What is it that I am doing wrong ? And Why FFmpeg generates a different number of frames ?

    


    VID-20210223-WA0009.mp4

    


    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'VID-20210223-WA0009.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp42isom
  Duration: 00:00:50.39, start: 0.000000, bitrate: 1410 kb/s
    Stream #0:0(und): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv, bt709), 480x848, 1345 kb/s, 59.96 fps, 59.94 tbr, 600 tbn, 1200 tbc (default)
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 62 kb/s (default)
At least one output file must be specified



    


    


    


    


    VID-20210223-WA0009_1.mp4

    


    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'VID-20210223-WA0009_1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.48.100
  Duration: 00:00:50.39, start: 0.000000, bitrate: 1376 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuvj420p(pc), 480x848, 1301 kb/s, 59.94 fps, 59.94 tbr, 60k tbn, 119.88 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 62 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
At least one output file must be specified



    


    


    


    


  • Executing an exe and reading the OutputStream

    30 septembre 2014, par vlatkozelka

    I have a program called FFprobe which probes media (files/live streams ... ) and outputs result in different formats , for example :

    ffprobe.exe -i test.ts -print_format xml -show_programs

    gives this output :

       <?xml version="1.0" encoding="UTF-8"?>
    <ffprobe>
       <programs>
           <program>
               <tag key="service_name" value="Arabica TV"></tag>
               <tag key="service_provider" value="Nilesat"></tag>
               <streams>
                   <stream index="10" profile="Main" width="720" height="576" level="8" timecode="08:28:54:09">
                       <disposition default="0" dub="0" original="0" comment="0" lyrics="0" karaoke="0" forced="0"></disposition>
                   </stream>
                   <stream index="4" channels="2">
                       <disposition default="0" dub="0" original="0" comment="0" lyrics="0" karaoke="0" forced="0"></disposition>
                   </stream>
               </streams>
           </program>
    ... more programs
    </programs></ffprobe>

    to retrieve this info in java i used ProcessBuilder and a scanner , and then id write to a file once the result is ok ... but it wasnt :

    Process proc = new ProcessBuilder("ffprobe.exe","-i", ... same arguments );
    Scanner sc = new Scanner (proc.getInputStream()) // im 100% sure its not errorStream
    while(sc.hasNext()){
      System.out.println(sc.nextLine());
    }

    the app just hangs with no output , i know its hanging cuz the process is still running and scanner has next , but , i don’t know why it would do that ?If i execute the same in cmd i would get good result and ofc i can write to file with ">"

    Ive tried it w/o the -print_format option , which gives the info in a plain text on the errorstream(i know its error cuz i was able to write with 2> not >> ) , and i was able to read the error stream in java , but its not meant for parsing cuz very very un-organized .

      Input #0, mpegts, from 'PBR_REC_20140426094852_486.ts':
     Duration: 00:13:34.30, start: 7791.344722, bitrate: 42154 kb/s
     Program 1201
       Metadata:
         service_name    : Arabica TV
         service_provider: Nilesat
       Stream #0:19[0x7db]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv), 720x576 [SAR 16:15 DAR 4:3], max. 2348 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
       Stream #0:3[0xbcf]: Audio: mp2, 48000 Hz, stereo, s16p, 384 kb/s
     Program 1202
       Metadata:
         service_name    : NBN
         service_provider: NILESAT
       Stream #0:10[0x7d1]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv), 720x576 [SAR 16:15 DAR 4:3], max. 2600 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
       Stream #0:11[0xbba](eng): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 125 kb/s
     Program 1203
       Metadata:
         service_name    : Heya TV
         service_provider: NILESAT
       Stream #0:5[0x7d2]: Video: mpeg2video (Main) ([2][0][0][0] / 0x0002), yuv420p(tv), 720x576 [SAR 16:15 DAR 4:3], max. 2600 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
       Stream #0:6[0xbbc](eng): Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, mono, s16p, 125 kb/s
     Program 1204  ... more programs

    now it might seem organized and "parse-able" and i actually made a parser that worked to some point , but sometimes it doesnt stick to this structure and ruins the whole parsing, its why i need a xml/json ...

    The -print_format im sure outputs to outputstream.

    Im not asking for help on how to use FFprobe as thats not this place’s purpose , Im asking why am i not being able to get the output stream from java while it is definitely outputting if i execute in windows .

    I also tried apache commons-exec as i know processbuilder can be a pain ,it did execute perfectly and showed in System.in (black for intput and red for error), but getting the stream with apache is something i couldn’t understand , i tried this example

    The xml parser i already taken care of , simply put i just need to execute that first command from java and read the output , but for some reason its not working .

  • Using ffmpeg to combine small mp4 chunks ?

    20 mai 2015, par shiny formica

    I’m trying to convert batches of png images into a single mp4 x264 video using ffmpeg. The conversion, for reasons I won’t go into, converts groups of frames into short mp4 chunks and then I want to take those chunks and merge them into the final video at a specific fps (in this case 30fps).

    My understanding of ffmpeg and the x264 options is too limited, and while I can produce the individual mp4 chunks from the source png frames without trouble, the final merge always ends up duplicating and/or dropping frames especially with very short chunks (< 4 frames).

    The conversion from png to mp4 uses this command :

    ffmpeg -start_number 1001 -framerate 30 -f image2 -i 'intermediate.%d.png' -c:v libx264 -crf 1 -pix_fmt yuv420p -movflags +faststart -frames:v 4 -r 30 chunk.1.mp4 -y

    which appears to work as expected, I get a playable mp4 chunk of, in this case, 4 frames of the sequence of png images at 30fps. The length of each chunk can be anywhere from 1 frame to around 100 frames.

    When all the chunks are generated, I’ve been trying to use the concat demuxer to combine without re-encoding, placing all the source chunk paths in a file :

    concat.txt :

    file 'chunk.1.mp4'
    file 'chunk.2.mp4'
    file 'chunk.3.mp4'
    ...

    and then running this ffmpeg command :

    ffmpeg -f concat -i concat.txt -c:v copy merged.mp4 -y

    but it says this during the concatenation :

    [concat @ 0x315ff80] Estimating duration from bitrate, this may be inaccurate

    and the resulting mp4 has dropped/duplicated frames. So I tried adding duration info to the concat.txt file :

    file 'chunk.1.mp4'
    duration 0.133333
    file 'chunk.2.mp4'
    duration 0.133333
    file 'chunk.3.mp4'
    duration 0.066666

    in this case, two 4-frame/30fps chunks and one 2-frame/30fps chunk. Which gets rid of that estimation warning, but the result is still duplicating/dropping frames.

    I’m not sure where I’m going wrong here...what do I need to do either in the production of the short mp4 segments, or in the combination stage, to get a single mp4 at the right framerate with no duplicated or dropped frames ?

    As suggested, here’s the console output for the conversion from png->mp4 chunks :

    ffmpeg -loglevel verbose -start_number 1001 -framerate 30 -f image2 -i 'intermediate.%d.png' -c:v libx264 -crf 1 -pix_fmt yuv420p -movflags +faststart -frames:v 4 -r 30 chunk.1.mp4 -y
    ffmpeg version 2.5.4 Copyright (c) 2000-2015 the FFmpeg developers
     built on Feb 26 2015 10:23:42 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-3)
     configuration: --prefix=/dept/srd/vendor/ffmpeg/bundle.rhel6/ffmpeg2.5.4 --enable-static --enable-pthreads --enable-gpl --enable-version3 --disable-ffserver --disable-ffplay --disable-ffprobe --enable-x11grab --enable-nonfree --extra-cflags=-I/dept/srd/vendor/ffmpeg/extern/rhel6/include --extra-ldflags=-L/dept/srd/vendor/ffmpeg/extern/rhel6/lib --enable-libx264 --enable-fontconfig --enable-libfreetype --enable-swscale --enable-libmp3lame --enable-libfaac --disable-yasm
     libavutil      54. 15.100 / 54. 15.100
     libavcodec     56. 13.100 / 56. 13.100
     libavformat    56. 15.102 / 56. 15.102
     libavdevice    56.  3.100 / 56.  3.100
     libavfilter     5.  2.103 /  5.  2.103
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  1.100 /  1.  1.100
     libpostproc    53.  3.100 / 53.  3.100
    Input #0, image2, from 'intermediate.%d.png':
     Duration: 00:00:00.27, start: 0.000000, bitrate: N/A
       Stream #0:0: Video: png, rgba, 1024x1024 (0x0), 30 fps, 30 tbr, 30 tbn, 30 tbc
    [graph 0 input from stream 0:0 @ 0x273e9c0] w:1024 h:1024 pixfmt:rgba tb:1/30 fr:30/1 sar:0/1 sws_param:flags=2
    [auto-inserted scaler 0 @ 0x2737ea0] w:iw h:ih flags:'0x4' interl:0
    [format @ 0x273ece0] auto-inserting filter 'auto-inserted scaler 0' between the filter 'Parsed_null_0' and the filter 'format'
    [auto-inserted scaler 0 @ 0x2737ea0] w:1024 h:1024 fmt:rgba sar:0/1 -> w:1024 h:1024 fmt:yuv420p sar:0/1 flags:0x4
    [libx264 @ 0x273c540] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX
    [libx264 @ 0x273c540] profile High, level 3.2
    [libx264 @ 0x273c540] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - 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=36 lookahead_threads=6 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=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to 'chunk.1.mp4':
     Metadata:
       encoder         : Lavf56.15.102
       Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1024x1024, q=-1--1, 30 fps, 15360 tbn, 30 tbc
       Metadata:
         encoder         : Lavc56.13.100 libx264
    Stream mapping:
     Stream #0:0 -> #0:0 (png (native) -> h264 (libx264))
    Press [q] to stop, [?] for help
    No more output streams to write to, finishing.
    [mp4 @ 0x273baa0] Starting second pass: moving the moov atom to the beginning of the file
    frame=    4 fps=0.0 q=-1.0 Lsize=     197kB time=00:00:00.06 bitrate=24228.7kbits/s    
    video:196kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.439751%
    Input file #0 (intermediate.%d.png):
     Input stream #0:0 (video): 8 packets read (2341016 bytes); 5 frames decoded;
     Total: 8 packets (2341016 bytes) demuxed
    Output file #0 (chunk.3.mp4):
     Output stream #0:0 (video): 4 frames encoded; 4 packets muxed (201023 bytes);
     Total: 4 packets (201023 bytes) muxed
    [libx264 @ 0x273c540] frame I:1     Avg QP: 0.47  size:116049
    [libx264 @ 0x273c540] frame P:1     Avg QP: 2.29  size: 37932
    [libx264 @ 0x273c540] frame B:2     Avg QP: 2.37  size: 23184
    [libx264 @ 0x273c540] consecutive B-frames: 25.0%  0.0% 75.0%  0.0%
    [libx264 @ 0x273c540] mb I  I16..4: 80.0%  4.5% 15.5%
    [libx264 @ 0x273c540] mb P  I16..4:  0.2%  0.1%  0.4%  P16..4:  8.1%  3.6%  3.7%  0.0%  0.0%    skip:83.9%
    [libx264 @ 0x273c540] mb B  I16..4:  0.0%  0.0%  0.0%  B16..8:  4.8%  1.2%  1.6%  direct: 4.3%  skip:88.1%  L0:38.6% L1:39.3% BI:22.1%
    [libx264 @ 0x273c540] 8x8 transform intra:4.6% inter:14.8%
    [libx264 @ 0x273c540] coded y,uvDC,uvAC intra: 20.7% 22.9% 22.8% inter: 8.7% 10.1% 10.0%
    [libx264 @ 0x273c540] i16 v,h,dc,p: 95%  1%  3%  1%
    [libx264 @ 0x273c540] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 21% 22%  6%  6%  6%  7%  5%  6%
    [libx264 @ 0x273c540] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 20% 17% 18%  7%  8%  7%  8%  6%  8%
    [libx264 @ 0x273c540] i8c dc,h,v,p: 89%  4%  4%  3%
    [libx264 @ 0x273c540] Weighted P-Frames: Y:0.0% UV:0.0%
    [libx264 @ 0x273c540] ref B L1: 89.5% 10.5%
    [libx264 @ 0x273c540] kb/s:12020.88

    as I said, this appears to produce a valid mp4 at 30fps with no duplicated or dropped frames from the input images.

    Here’s the output of the combine phase :

    ffmpeg -loglevel verbose -f concat -i concat.txt -c:v copy merged.mp4 -y
    ffmpeg version 2.5.4 Copyright (c) 2000-2015 the FFmpeg developers
     built on Feb 26 2015 10:23:42 with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-3)
     configuration: --prefix=/dept/srd/vendor/ffmpeg/bundle.rhel6/ffmpeg2.5.4 --enable-static --enable-pthreads --enable-gpl --enable-version3 --disable-ffserver --disable-ffplay --disable-ffprobe --enable-x11grab --enable-nonfree --extra-cflags=-I/dept/srd/vendor/ffmpeg/extern/rhel6/include --extra-ldflags=-L/dept/srd/vendor/ffmpeg/extern/rhel6/lib --enable-libx264 --enable-fontconfig --enable-libfreetype --enable-swscale --enable-libmp3lame --enable-libfaac --disable-yasm
     libavutil      54. 15.100 / 54. 15.100
     libavcodec     56. 13.100 / 56. 13.100
     libavformat    56. 15.102 / 56. 15.102
     libavdevice    56.  3.100 / 56.  3.100
     libavfilter     5.  2.103 /  5.  2.103
     libswscale      3.  1.101 /  3.  1.101
     libswresample   1.  1.100 /  1.  1.100
     libpostproc    53.  3.100 / 53.  3.100
    Input #0, concat, from 'concat.txt':
     Duration: 00:00:00.67, start: 0.000000, bitrate: 2 kb/s
       Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1024x1024, 7791 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
    Output #0, mp4, to 'merged.mp4':
     Metadata:
       encoder         : Lavf56.15.102
       Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1024x1024 (0x0), q=2-31, 7791 kb/s, 30 fps, 15360 tbn, 15360 tbc
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)
    Press [q] to stop, [?] for help
    No more output streams to write to, finishing.
    frame=   20 fps=0.0 q=-1.0 Lsize=     748kB time=00:00:00.56 bitrate=10805.0kbits/s    
    video:746kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.141687%
    Input file #0 (concat.txt):
     Input stream #0:0 (video): 20 packets read (764361 bytes);
     Total: 20 packets (764361 bytes) demuxed
    Output file #0 (merged.mp4):
     Output stream #0:0 (video): 20 packets muxed (764361 bytes);
     Total: 20 packets (764361 bytes) muxed