Recherche avancée

Médias (91)

Autres articles (74)

  • Les vidéos

    21 avril 2011, par

    Comme les documents de type "audio", Mediaspip affiche dans la mesure du possible les vidéos grâce à la balise html5 .
    Un des inconvénients de cette balise est qu’elle n’est pas reconnue correctement par certains navigateurs (Internet Explorer pour ne pas le nommer) et que chaque navigateur ne gère en natif que certains formats de vidéos.
    Son avantage principal quant à lui est de bénéficier de la prise en charge native de vidéos dans les navigateur et donc de se passer de l’utilisation de Flash et (...)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • La file d’attente de SPIPmotion

    28 novembre 2010, par

    Une file d’attente stockée dans la base de donnée
    Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
    Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...)

Sur d’autres sites (9052)

  • JavaCV read video and record

    4 janvier 2015, par John

    I am trying to merge mp4 and mp3 on Android, I am using the JavaCV, please check my code below first, then I explained the strange error after :

    private void test2() throws Exception {
       String path = Environment.getExternalStorageDirectory()
               .getAbsolutePath();

       int testId = 4;
       String videoPath = path + "/" + "sample" + testId + ".mp4";
       String audioPath = path + "/" + "love.mp3";
       String outputPath = path + "/" + "out" + testId + ".mp4";

       FrameGrabber grabber1 = new FFmpegFrameGrabber(videoPath);
       FrameGrabber grabber2 = new FFmpegFrameGrabber(audioPath);

       grabber1.start();
       grabber2.start();

       FrameRecorder recorder = new FFmpegFrameRecorder(outputPath,
               grabber1.getImageWidth(), grabber1.getImageHeight(),
               grabber2.getAudioChannels());

       double frameRate = grabber1.getFrameRate();
       recorder.setFrameRate(frameRate);
       recorder.setSampleRate(grabber2.getSampleRate());
       recorder.setVideoQuality(1);

       recorder.start();

       Frame frame1, frame2 = null;

       // getLengthInTime is correct, but getLengthInFrames not accurate.
       Log.d(TAG, " Video lengthInTime:" + grabber1.getLengthInTime()
               + " Video frames:" + grabber1.getLengthInFrames());

       // Record video.
       int count = 0;
       while (true) {
           frame1 = grabber1.grabFrame();
           if (frame1 == null) {
               break;
           }

           frame1.samples = null;
           recorder.record(frame1);
           count++;

           Log.d(TAG, "Video frame timestamp:" + grabber1.getTimestamp());
       }
       Log.d(TAG, " Video frame count:" + count);

       // Record audtio.
       long videoTimestamp = recorder.getTimestamp();
       while (true) {
           frame2 = grabber2.grabFrame();
           if (frame2 != null && grabber2.getTimestamp() <= videoTimestamp) {
               frame2.image = null;
               recorder.record(frame2);

               // Log.d(TAG, "Audio frame timestamp:" +
               // grabber2.getTimestamp());
           } else {
               break;
           }
       }

       // release
       recorder.stop();
       recorder.release();

       grabber1.stop();
       grabber2.stop();
    }

    The output’s audio is OK, but the video is strangle. The video play 1s and stop 1s, then repeat like this. The input video I recorded by Phone’s camera.

    I tried to count the real number of video frames, and I found the real number is much bigger than the number got from method getLengthInFrames().

  • Grey squared artifacts after HEVC 10-bit encoding using FFmpeg's NVENC encoder

    20 juillet 2017, par Cryman

    Recently I purchased a brand new GPU - AORUS GeForce GTX 1080 Ti. I found out that it supports HEVC 10-bit encoding, so I wanted to give that a try. Unfortunately, after encoding I noticed some artifacts, which occur in dark scenes and last one frame of the video. You can see them on these screenshots :

    Screenshot of a still from an animated scene. There is an artifact near the bottom and slightly to the left. It is square shaped with white squiggles.

    Screenshot of a still from another animated scene. The artifact looks the same as in the previous image but is in a different location, higher up and closer to the center.

    I was wondering if someone could help me figure out what might be the cause of these artifacts and how I can get rid of them.

    Here is the MI of the source video :

    ID                                       : 1
    Format                                   : AVC
    Format/Info                              : Advanced Video Codec
    Format profile                           : High@L4.1
    Format settings, CABAC                   : Yes
    Format settings, ReFrames                : 4 frames
    Codec ID                                 : V_MPEG4/ISO/AVC
    Duration                                 : 2 h 2 min
    Bit rate mode                            : Variable
    Bit rate                                 : 29.5 Mb/s
    Maximum bit rate                         : 37.0 Mb/s
    Width                                    : 1 920 pixels
    Height                                   : 1 080 pixels
    Display aspect ratio                     : 16:9
    Frame rate mode                          : Constant
    Frame rate                               : 23.976 (24000/1001) FPS
    Color space                              : YUV
    Chroma subsampling                       : 4:2:0
    Bit depth                                : 8 bits
    Scan type                                : Progressive
    Bits/(Pixel*Frame)                       : 0.593
    Stream size                              : 25.2 GiB (66%)
    Language                                 : English
    Default                                  : Yes
    Forced                                   : No

    And here is the MI of the encoded video :

    ID                                       : 1
    Format                                   : HEVC
    Format/Info                              : High Efficiency Video Coding
    Format profile                           : Main 10@L4@Main
    Codec ID                                 : V_MPEGH/ISO/HEVC
    Duration                                 : 2 h 2 min
    Bit rate                                 : 3 689 kb/s
    Width                                    : 1 920 pixels
    Height                                   : 800 pixels
    Display aspect ratio                     : 2.40:1
    Frame rate mode                          : Constant
    Frame rate                               : 23.976 (24000/1001) FPS
    Standard                                 : Component
    Color space                              : YUV
    Chroma subsampling                       : 4:2:0
    Bit depth                                : 10 bits
    Bits/(Pixel*Frame)                       : 0.100
    Stream size                              : 3.15 GiB (95%)
    Default                                  : Yes
    Forced                                   : No
    Color range                              : Limited

    The command I’m using for encoding :

    ffmpeg -hide_banner -i "" -map 0:v:0 -map_chapters -1 -map_metadata -1 -vf "crop=1920:800:0:140" -vcodec hevc_nvenc -pix_fmt p010le -preset hq -profile:v main10 -rc constqp -global_quality 21 -rc-lookahead 32 -g 240 -f matroska Video_CQP21_LAF32_GOP240.mkv
  • Transcode each stream in a different thread with ffmpeg

    30 mai 2018, par hedgar2017

    Is there a way of forcing ffmpeg to encode each audio stream in a different thread ?

    ffmpeg
       -i audio1.ac3 -c:a libopus
       -i audio2.ac3 -c:a libopus
       -i audio3.ac3 -c:a libopus
       output.mkv

    I mean only ffmpeg’s own instruments, without multiple processes and other OS features.

    Normally, there is only one core saturated, so encoding a file with many audio streams is very long.

    Exact command :

    ffmpeg -loglevel verbose
       -i 'Ярость (Fury).mkv'
       -i 'Fury (2014) [Ukr & Eng, Sub Eng] BDRip-AVC [Hurtom & HELLYWOOD].mkv'
       -threads 0 -max_muxing_queue_size 65536 -avoid_negative_ts 1 -metadata title=2014.Fury.BDRip.HEVC.1080p
       -map 0:0 -c:v copy -metadata:s:v:0 title=2014.Fury.BDRip.HEVC.1080p -disposition:v:0 +defaug-[forced
       -map 0:2 -c:a libopus -application audio -vbr on -packet_loss 0 -frame_duration 20 -mapping_family 255 -compression_level 10 -metadata:s:a:0 language=eng -metadata:s:a:0 title=Original -disposition:a:0 +defaug-[forced
       -map 1:1 -c:a libopus -application audio -vbr on -packet_loss 0 -frame_duration 20 -mapping_family 255 -compression_level 10 -metadata:s:a:1 language=ukr -disposition:a:1 -default-forced
       -map 0:1 -c:a libopus -application audio -vbr on -packet_loss 0 -frame_duration 20 -mapping_family 255 -compression_level 10 -metadata:s:a:2 language=rus -metadata:s:a:2 title=Dub -disposition:a:2 -default-forced
       -map 0:10 -c:s copy -metadata:s:s:0 language=eng -metadata:s:s:0 title=Original -disposition:s:0 -default-forced
       -f matroska ./2014.Fury.BDRip.HEVC.1080p.mkv

    Log :

    ... inputs ...
    Stream mapping:
     Stream #0:0 -> #0:0 (copy)
     Stream #0:2 -> #0:1 (dts (dca) -> opus (libopus))
     Stream #1:1 -> #0:2 (ac3 (native) -> opus (libopus))
     Stream #0:1 -> #0:3 (ac3 (native) -> opus (libopus))
     Stream #0:10 -> #0:4 (copy)
    Press [q] to stop, [?] for help
    [graph_2_in_0_1 @ 0000019ca2cb29c0] tb:1/48000 samplefmt:fltp samplerate:48000 chlayout:0x60f
    [format_out_0_3 @ 0000019ca2cb20c0] auto-inserting filter 'auto_resampler_0' between the filter 'Parsed_anull_0' and the filter 'format_out_0_3'
    [auto_resampler_0 @ 0000019ca2cb27c0] ch:6 chl:5.1(side) fmt:fltp r:48000Hz -> ch:6 chl:5.1(side) fmt:flt r:48000Hz
    [libopus @ 0000019ca2c9f3c0] No bit rate set. Defaulting to 384000 bps.
    [graph_0_in_0_2 @ 0000019ca2cb1ac0] tb:1/48000 samplefmt:fltp samplerate:48000 chlayout:0x60f
    [format_out_0_1 @ 0000019ca2cb1bc0] auto-inserting filter 'auto_resampler_0' between the filter 'Parsed_anull_0' and the filter 'format_out_0_1'
    [auto_resampler_0 @ 0000019ca2cb14c0] ch:6 chl:5.1(side) fmt:fltp r:48000Hz -> ch:6 chl:5.1(side) fmt:flt r:48000Hz
    [libopus @ 0000019ca292c980] No bit rate set. Defaulting to 384000 bps.
    [graph_1_in_1_1 @ 0000019ca2cb2bc0] tb:1/48000 samplefmt:fltp samplerate:48000 chlayout:0x60f
    [format_out_0_2 @ 0000019ca2cb26c0] auto-inserting filter 'auto_resampler_0' between the filter 'Parsed_anull_0' and the filter 'format_out_0_2'
    [auto_resampler_0 @ 0000019ca2cb0dc0] ch:6 chl:5.1(side) fmt:fltp r:48000Hz -> ch:6 chl:5.1(side) fmt:flt r:48000Hz
    [libopus @ 0000019ca292e980] No bit rate set. Defaulting to 384000 bps.
    Output #0, matroska, to './2014.Fury.BDRip.HEVC.1080p.mkv':
     Metadata:
       DATE_RELEASED   : 2014
       title           : 2014.Fury.BDRip.HEVC.1080p
       Released by     : Buba5473 for NNM-Club
       Copyright       : Encoded by Goor80
       encoder         : Lavf58.12.100
       Chapter #0:0: start 0.000000, end 478.228000
       Metadata:
         title           : Chapter 01
       ... chapters ...
       Stream #0:0: Video: hevc (Main 10), 1 reference frame, yuv420p10le(tv), 1920x800 (0x0) [SAR 1:1 DAR 12:5], q=2-31, 23.98 fps, 23.98 tbr, 1k tbn, 1k tbc (default)
       Stream #0:1(eng): Audio: opus (libopus) ([255][255][255][255] / 0xFFFFFFFF), 48000 Hz, 5.1(side), flt, delay 312, 384 kb/s (default)
       Stream #0:2(ukr): Audio: opus (libopus) ([255][255][255][255] / 0xFFFFFFFF), 48000 Hz, 5.1(side), flt, delay 312, 384 kb/s
       Stream #0:3(rus): Audio: opus (libopus) ([255][255][255][255] / 0xFFFFFFFF), 48000 Hz, 5.1(side), flt, delay 312, 384 kb/s
       Stream #0:4(eng): Subtitle: subrip
    [matroska @ 0000019ca2d17f00] Starting new cluster due to timestamp=6175.5kbits/s speed=10.2x
    [matroska @ 0000019ca2d17f00] Starting new cluster due to timestamp=7530.8kbits/s speed=8.74x
    [matroska @ 0000019ca2d17f00] Starting new cluster due to timestamp=7955.1kbits/s speed=9.02x
    frame=156607 fps=205 q=-1.0 size= 8321971kB time=01:48:51.85 bitrate=10437.1kbits/s speed=8.55x
    ... not finished yet ...

    fps is always around 3000/number_of_audio_channels, meaning all audio transcoding is done with the only thread.