Recherche avancée

Médias (91)

Autres articles (63)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

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

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

Sur d’autres sites (10541)

  • Timestamp not printed on thumbnails with FFMPEG

    26 août 2021, par mlatelcom

    I have a script using FFMPEG to generate an image with tiled thumbnails every 45 seconds for several videos on a given folder. The images are named with the name of the video it was generated from. It generates the thumbnails for each video but it does not print the time stamps on them. The path to the font file is correct ; so I don't know where the issue is. I'm using the script in Fedora Linux.

    


    Here is the FFMPEG command line code on the script :

    


     ffmpeg -ss 00:00:05 -i test.mp4 -loglevel 40 -frames 1 -bt 20M -vf "drawtext=fontfile=/usr/share/fonts/open-sans/OpenSans-Light.ttf:timecode='00\\:00\\:00\\:00':r=30:fontcolor=white:x=220:y=220:box=1:boxcolor=black@0.5,select=not(mod(n\,1350)),scale=200:150,tile=15x48" -n "${name}.png"


    


    and this is the console output

    


    ffmpeg version 4.4 Copyright (c) 2000-2021 the FFmpeg developers
  built with gcc 11 (GCC)
  configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' --extra-ldflags='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld ' --extra-cflags=' -I/usr/include/rav1e' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --disable-crystalhd --enable-fontconfig --enable-frei0r --enable-gcrypt --enable-gnutls --enable-ladspa --enable-libaom --enable-libdav1d --enable-libass --enable-libbluray --enable-libcdio --enable-libdrm --enable-libjack --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-nvenc --enable-openal --enable-opencl --enable-opengl --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librav1e --enable-libsmbclient --enable-version3 --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-version3 --enable-vapoursynth --enable-libvpx --enable-vulkan --enable-libglslang --enable-libx264 --enable-libx265 --enable-libxvid --enable-libxml2 --enable-libzimg --enable-libzvbi --enable-lv2 --enable-avfilter --enable-avresample --enable-libmodplug --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-lto --enable-libmfx --enable-runtime-cpudetect
  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
  libavresample   4.  0.  0 /  4.  0.  0
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
[h264 @ 0x56051b4b3cc0] Reinit context to 1280x720, pix_fmt: yuv420p
[mpegts @ 0x56051b4acc80] max_analyze_duration 5000000 reached at 5000000 microseconds st:0
Input #0, mpegts, from 'test.mp4':
  Duration: 00:04:57.02, start: 1.400000, bitrate: 2853 kb/s
  Program 1 
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
  Stream #0:0[0x100]: Video: h264 (Main), 1 reference frame ([27][0][0][0] / 0x001B), yuv420p(progressive, left), 1280x720 [SAR 1:1 DAR 16:9], 30 fps, 30 tbr, 90k tbn, 60 tbc
  Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 96 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> png (native))
Press [q] to stop, [?] for help
[h264 @ 0x56051ba69e00] Reinit context to 1280x720, pix_fmt: yuv420p
[Parsed_scale_2 @ 0x56051b5953c0] w:200 h:150 flags:'bicubic' interl:0
[graph 0 input from stream 0:0 @ 0x56051b725ac0] w:1280 h:720 pixfmt:yuv420p tb:1/90000 fr:30/1 sar:1/1
[Parsed_scale_2 @ 0x56051b5953c0] w:1280 h:720 fmt:yuv420p sar:1/1 -> w:200 h:150 fmt:rgb24 sar:4/3 flags:0x4
Output #0, image2, to '.png':
  Metadata:
    encoder         : Lavf58.76.100
  Stream #0:0: Video: png, 1 reference frame, rgb24(pc, progressive, left), 3000x7200 (0x0) [SAR 4:3 DAR 5:9], q=2-31, 200 kb/s, 0.04 fps, 0.04 tbn
    Metadata:
      encoder         : Lavc58.134.100 png
No more output streams to write to, finishing.00.00 bitrate=N/A speed=   0x    
[AVIOContext @ 0x56051b84c8c0] Statistics: 0 seeks, 2 writeouts
frame=    1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:24.00 bitrate=N/A speed=0.47x    
video:465kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Input file #0 (test.mp4):
  Input stream #0:0 (video): 8761 packets read (96159422 bytes); 8760 frames decoded; 
  Input stream #0:1 (audio): 0 packets read (0 bytes); 
  Total: 8761 packets (96159422 bytes) demuxed
Output file #0 (.png):
  Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (476224 bytes); 
  Total: 1 packets (476224 bytes) muxed
[AVIOContext @ 0x56051b4b5d00] Statistics: 107090352 bytes read, 18 seeks


    


  • ffmpeg command to add moving text watermark to video [closed]

    13 octobre 2023, par Imran Khan
    

    

            // Constants for watermark movement, direction change intervals, fade intervals, and overlap duration
        const MOVE_SPEED = 3;
        const DIRECTION_CHANGE_MIN = 3000;
        const DIRECTION_CHANGE_MAX = 6000;
        const FADE_INTERVAL_MIN = 10000;
        const FADE_INTERVAL_MAX = 20000;
        const OVERLAP_DURATION = 2000;

        // Get references to the video container and watermarks
        const container = document.querySelector('.video-container');
        const watermark1 = document.getElementById('watermark1');
        const watermark2 = document.getElementById('watermark2');

        // Helper function to get a random integer between min and max (inclusive)
        function getRandomInt(min, max) {
            return Math.floor(Math.random() * (max - min + 1)) + min;
        }

        // Helper function to get a random direction (either 1 or -1)
        function getRandomDirection() {
            return Math.random() > 0.5 ? 1 : -1;
        }

        // Set the initial position of the watermark inside the video container
        function setInitialPosition(watermark) {
            const x = getRandomInt(0, container.offsetWidth - watermark.offsetWidth);
            const y = getRandomInt(0, container.offsetHeight - watermark.offsetHeight);
            watermark.style.left = `${x}px`;
            watermark.style.top = `${y}px`;
            watermark.style.opacity = 1;
        }

        // Function to handle continuous movement of the watermark
        function continuousMove(watermark) {
            let dx = getRandomDirection() * MOVE_SPEED;
            let dy = getRandomDirection() * MOVE_SPEED;

            // Inner function to handle the actual movement logic
            function move() {
                let x = parseInt(watermark.style.left || 0) + dx;
                let y = parseInt(watermark.style.top || 0) + dy;

                // Check boundaries and reverse direction if necessary
                if (x < 0 || x > container.offsetWidth - watermark.offsetWidth) {
                    dx = -dx;
                }
                if (y < 0 || y > container.offsetHeight - watermark.offsetHeight) {
                    dy = -dy;
                }

                // Apply the new position
                watermark.style.left = `${x}px`;
                watermark.style.top = `${y}px`;

                // Continue moving
                setTimeout(move, 100);
            }

            move();

            // Change direction at random intervals
            setInterval(() => {
                const randomChoice = Math.random();
                if (randomChoice < 0.33) {
                    dx = getRandomDirection() * MOVE_SPEED;
                    dy = 0;
                } else if (randomChoice < 0.66) {
                    dy = getRandomDirection() * MOVE_SPEED;
                    dx = 0;
                } else {
                    dx = getRandomDirection() * MOVE_SPEED;
                    dy = getRandomDirection() * MOVE_SPEED;
                }
            }, getRandomInt(DIRECTION_CHANGE_MIN, DIRECTION_CHANGE_MAX));
        }

        // Handle the fading out of the old watermark and fading in of the new watermark
        function fadeOutAndIn(oldWatermark, newWatermark) {
            setTimeout(() => {
                setInitialPosition(newWatermark);
                newWatermark.style.opacity = 1;
            }, 0);

            setTimeout(() => {
                oldWatermark.style.opacity = 0;
            }, OVERLAP_DURATION);

            // Continue the cycle
            setTimeout(() => fadeOutAndIn(newWatermark, oldWatermark), getRandomInt(FADE_INTERVAL_MIN, FADE_INTERVAL_MAX));
        }

        // Initialize the watermarks
        setInitialPosition(watermark1);
        continuousMove(watermark1);
        setTimeout(() => fadeOutAndIn(watermark1, watermark2), getRandomInt(FADE_INTERVAL_MIN, FADE_INTERVAL_MAX));
        continuousMove(watermark2);
    

    


    body, html {
            height: 100%;
            margin: 0;
            font-family: Arial, sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            background-color: #eee;
        }

        .video-container {
            width: 50vw;
            height: 50vh;
            background-color: black;
            position: relative;
            overflow: hidden;
        }

        .watermark {
            font-size: 22px;
            position: absolute;
            color: white;
            opacity: 0;
            transition: opacity 2s;
        }

    


    &#xA;&#xA;&#xA;    &#xA;    &#xA;    &#xA;&#xA;&#xA;    <div class="video-container">&#xA;        <span class="watermark">watermark</span>&#xA;        <span class="watermark">watermark</span>&#xA;    </div>&#xA;    &#xA;&#xA;

    &#xD;&#xA;

    &#xD;&#xA;

    &#xD;&#xA;&#xA;

    I am trying to achieve an animation effect using ffmpeg. I am adding text watermark to an input video and animate the text diagonally, horizontally or vertically changed randomly. Here is what I have achieved so far.

    &#xA;

    ffmpeg -i video.mp4 -c:v libx264 -preset veryfast -crf 25 -tune zerolatency -vendor ap10 -pix_fmt yuv420p -filter:v "drawtext=fontfile=./fonts/Roboto/Roboto-Light.ttf:text=&#x27;Watermark&#x27;:fontcolor=white:alpha=0.5:fontsize=60:y=h/10*mod(t\,10):x=w/10*mod(t\,10):enable=1" -c:a copy watermark.mp4

    &#xA;

    Here is what I want it to work.

    &#xA;

    Initial Position :&#xA;The watermark randomly placed in the video the first time they appear.

    &#xA;

    Continuous Movement :&#xA;The watermark continuously moves within the video.&#xA;The direction and speed of the watermark's movement are random. It can move diagonally, purely horizontally, or purely vertically.&#xA;When the watermark reaches the boundaries of the video, it bounces back, changing its direction.

    &#xA;

    Direction Change :&#xA;During its continuous movement, the watermark will suddenly change its direction at random intervals between 3 to 6 seconds.&#xA;When changing direction, the watermark can randomly determined move diagonally, purely horizontally, or purely vertically.

    &#xA;

    Fade In and Out :&#xA;Every 10 to 20 seconds (randomly determined), the current watermark begins to fade out.&#xA;As the old watermark starts to fade out, a new watermark fades in at a random position, ensuring that there's always a visible watermark on the screen.&#xA;These two watermarks (the fading old one and the emerging new one) overlap on the screen for a duration of 2 seconds, after which the old watermark completely disappears.&#xA;These patterns and characteristics together provide a dynamic, constantly moving, and changing watermark for the video

    &#xA;

    To achieve the result I think we can use the drawtext multiple times. I have attached the HTML and JavaScript variant just for the reference to understand the result but I am trying to do this using ffmpeg.

    &#xA;

  • Android-FFmpeg adding subtitle to mp4 video does not work

    7 septembre 2022, par ebdaa app

    I am trying to add srt file to a mp4 video using android mobile-ffmpeg , the code works with no error but the generated video does not contain the subtitle

    &#xA;

    here is the code :

    &#xA;

     String cmd = "-i " &#x2B; videoPath &#x2B; " -vf subtitles=\"" &#x2B; subtitlePath &#x2B; ":force_style=&#x27;Alignment=10,Fontsize=18&#x27;\" " &#x2B; OutputVideoPath;&#xA; FFmpeg.executeAsync(cmd, new ExecuteCallback() {&#xA;    @Override&#xA;    public void apply(final long executionId, final int returnCode) {&#xA;         if (returnCode == RETURN_CODE_SUCCESS) {&#xA;         } else {&#xA;             &#xA;         }&#xA;    }&#xA; });&#xA;

    &#xA;

    here are the logs

    &#xA;

    I/mobile-ffmpeg: ffmpeg version v4.4-dev-416&#xA;     Copyright (c) 2000-2020 the FFmpeg developers&#xA;I/mobile-ffmpeg:   built with Android (6454773 based on r365631c2) clang version 9.0.8 (https://android.googlesource.com/toolchain/llvm-project 98c855489587874b2a325e7a516b99d838599c6f) (based on LLVM 9.0.8svn)&#xA;      configuration: --cross-prefix=arm-linux-androideabi- --sysroot=/files/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/neon/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=armv7-a --cpu=armv7-a --cc=armv7a-linux-androideabi24-clang --cxx=armv7a-linux-androideabi24-clang&#x2B;&#x2B; --extra-libs=&#x27;-L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm/neon/cpu-features/lib -lndk_compat&#x27; --target-os=android --enable-neon --enable-asm --enable-inline-asm --build-suffix=_neon --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --enable-shared --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-openssl --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gmp --enable-gnutls --enable-libmp3lame --enable-libass --enable-iconv --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libopencore-amrnb --enable-libshine --enable-libspeex --enable-libwavpack --enable-libkvazaar --enable-libilbc --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libaom --enable-libtwolame --disable-sdl2 --enable-libvo-amrwbenc --enable-zlib --enable-mediacodec&#xA;I/mobile-ffmpeg:   libavutil      56. 55.100 / 56. 55.100&#xA;      libavcodec     58. 96.100 / 58. 96.100&#xA;I/mobile-ffmpeg:   libavformat    58. 48.100 / 58. 48.100&#xA;      libavdevice    58. 11.101 / 58. 11.101&#xA;      libavfilter     7. 87.100 /  7. 87.100&#xA;      libswscale      5.  8.100 /  5.  8.100&#xA;I/mobile-ffmpeg:   libswresample   3.  8.100 /  3.  8.100&#xA;I/mobile-ffmpeg: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;/storage/emulated/0/Download/7b85de4d-6af2-4eea-be9d-0d13c7f7819f/001001.mp4&#x27;:&#xA;      Metadata:&#xA;        major_brand     : &#xA;I/mobile-ffmpeg: isom&#xA;        minor_version   : &#xA;I/mobile-ffmpeg: 512&#xA;        compatible_brands: &#xA;I/mobile-ffmpeg: isomiso2mp41&#xA;I/mobile-ffmpeg:     encoder         : &#xA;    Lavf58.48.100&#xA;I/mobile-ffmpeg:   Duration: &#xA;    00:00:29.60&#xA;    , start: &#xA;I/mobile-ffmpeg: 0.000000&#xA;    , bitrate: &#xA;    466 kb/s&#xA;I/mobile-ffmpeg:     Stream #0:0&#xA;    (und)&#xA;I/mobile-ffmpeg: : Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 640x480 [SAR 1:2 DAR 2:3], 336 kb/s&#xA;    , &#xA;    5 fps, &#xA;I/mobile-ffmpeg: 5 tbr, &#xA;    10240 tbn, &#xA;    5 tbc&#xA;I/mobile-ffmpeg:  (default)&#xA;I/mobile-ffmpeg:     Metadata:&#xA;          handler_name    : &#xA;    VideoHandler&#xA;I/mobile-ffmpeg:     Stream #0:1&#xA;I/mobile-ffmpeg: (und)&#xA;    : Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s&#xA;     (default)&#xA;I/mobile-ffmpeg:     Metadata:&#xA;I/mobile-ffmpeg:       handler_name    : &#xA;    SoundHandler&#xA;W/mobile-ffmpeg: Codec AVOption preset (Configuration preset) specified for output file #0 (/storage/emulated/0/Download/QuranYaser/7b85de4d-6af2-4eea-be9d-0d13c7f7819f/001001_sub.mp4) has not been used for any stream. The most likely reason is either wrong type (e.g. a video option with no video streams) or that it is a private option of some encoder which was not actually used for any stream.&#xA;I/mobile-ffmpeg: Stream mapping:&#xA;I/mobile-ffmpeg:   Stream #0:0 -> #0:0&#xA;I/mobile-ffmpeg:  (mpeg4 (native) -> mpeg4 (native))&#xA;I/mobile-ffmpeg:   Stream #0:1 -> #0:1&#xA;     (aac (native) -> aac (native))&#xA;I/mobile-ffmpeg: Press [q] to stop, [?] for help&#xA;    frame=    0 fps=0.0 q=0.0 size=       0kB time=-577014:32:22.77 bitrate=  -0.0kbits/s speed=N/A    &#xA;I/mobile-ffmpeg: [Parsed_subtitles_0 @ 0xf35ee820] Shaper: FriBidi 1.0.9 (SIMPLE)&#xA;I/mobile-ffmpeg: [Parsed_subtitles_0 @ 0xf35ee820] &#xA;W/mobile-ffmpeg: [Parsed_subtitles_0 @ 0xf35ee820] No usable fontconfig configuration file found, using fallback.&#xA;    [Parsed_subtitles_0 @ 0xf35ee820] &#xA;I/mobile-ffmpeg: [Parsed_subtitles_0 @ 0xf35ee820] Using font provider fontconfig&#xA;    [Parsed_subtitles_0 @ 0xf35ee820] &#xA;W/mobile-ffmpeg: [graph 0 input from stream 0:0 @ 0xf35ee880] sws_param option is deprecated and ignored&#xA;I/mobile-ffmpeg: Output #0, mp4, to &#x27;/storage/emulated/0/Download/QuranYaser/7b85de4d-6af2-4eea-be9d-0d13c7f7819f/001001_sub.mp4&#x27;:&#xA;I/mobile-ffmpeg:   Metadata:&#xA;        major_brand     : &#xA;    isom&#xA;I/mobile-ffmpeg:     minor_version   : &#xA;    512&#xA;I/mobile-ffmpeg:     compatible_brands: &#xA;I/mobile-ffmpeg: isomiso2mp41&#xA;        encoder         : &#xA;I/mobile-ffmpeg: Lavf58.48.100&#xA;        Stream #0:0&#xA;I/mobile-ffmpeg: (und)&#xA;    : Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 640x480 [SAR 1:2 DAR 2:3], q=2-31, 200 kb/s&#xA;    , &#xA;I/mobile-ffmpeg: 5 fps, &#xA;I/mobile-ffmpeg: 10240 tbn, &#xA;    5 tbc&#xA;I/mobile-ffmpeg:  (default)&#xA;        Metadata:&#xA;I/mobile-ffmpeg:       handler_name    : &#xA;    VideoHandler&#xA;          encoder         : &#xA;I/mobile-ffmpeg: Lavc58.96.100 mpeg4&#xA;        Side data:&#xA;I/mobile-ffmpeg:       &#xA;    cpb: &#xA;    bitrate max/min/avg: 0/0/200000 buffer size: 0 &#xA;    vbv_delay: N/A&#xA;I/mobile-ffmpeg:     Stream #0:1&#xA;    (und)&#xA;I/mobile-ffmpeg: : Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s&#xA;     (default)&#xA;        Metadata:&#xA;I/mobile-ffmpeg:       handler_name    : &#xA;    SoundHandler&#xA;I/mobile-ffmpeg:       encoder         : &#xA;    Lavc58.96.100 aac&#xA;I/mobile-ffmpeg: frame=   11 fps=0.0 q=2.0 size=       0kB time=00:00:03.59 bitrate=   0.1kbits/s speed=7.16x    &#xA;I/mobile-ffmpeg: frame=   30 fps= 30 q=2.0 size=     256kB time=00:00:07.47 bitrate= 280.5kbits/s speed=7.44x    &#xA;I/mobile-ffmpeg: frame=   50 fps= 33 q=2.0 size=     512kB time=00:00:11.54 bitrate= 363.5kbits/s speed=7.67x    &#xA;I/mobile-ffmpeg: frame=   71 fps= 35 q=2.0 size=     768kB time=00:00:15.71 bitrate= 400.2kbits/s speed=7.83x    &#xA;I/mobile-ffmpeg: frame=   92 fps= 37 q=2.0 size=    1024kB time=00:00:19.78 bitrate= 424.0kbits/s speed=7.88x    &#xA;I/mobile-ffmpeg: frame=  110 fps= 36 q=2.0 size=    1280kB time=00:00:23.38 bitrate= 448.5kbits/s speed=7.75x    &#xA;I/mobile-ffmpeg: frame=  128 fps= 36 q=2.0 size=    1280kB time=00:00:27.12 bitrate= 386.6kbits/s speed=7.71x    &#xA;I/mobile-ffmpeg: frame=  148 fps= 38 q=8.4 Lsize=    1697kB time=00:00:29.40 bitrate= 472.9kbits/s speed=7.56x    &#xA;    video:1225kB audio:462kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: &#xA;I/mobile-ffmpeg: 0.559634%&#xA;I/mobile-ffmpeg: [aac @ 0xbe48c800] Qavg: 163.999&#xA;

    &#xA;

    here is a sample of srt file I am trying to merge :

    &#xA;

    1&#xA;00:00:00,000 --> 00:00:03,326&#xA; Text 1&#xA;&#xA;2&#xA;00:00:03,326 --> 00:00:09,962&#xA; Text 2&#xA;&#xA;3&#xA;00:00:09,962 --> 00:00:16,160&#xA; Text 3&#xA;&#xA;4&#xA;00:00:16,160 --> 00:00:22,223&#xA; Text 4&#xA;

    &#xA;

    any idea why the generated video does not contain the subtitle ?

    &#xA;

    Update

    &#xA;

    Based on below comment , I changed my code to use the latest ffmpeg-kit version , here is the new code

    &#xA;

    String cmd = "-i " &#x2B; videoPath &#x2B; " -vf subtitles=\"" &#x2B; subtitlePAth &#x2B; ":force_style=&#x27;Alignment=10,Fontsize=18\" " &#x2B; &#xA;   outputVideoPath;&#xA;&#xA;   FFmpegKit.executeAsync(cmd, new FFmpegSessionCompleteCallback() {&#xA;&#xA;        @Override&#xA;        public void apply(FFmpegSession session) {&#xA;&#xA;        }&#xA;    }, new LogCallback() {&#xA;&#xA;        @Override&#xA;        public void apply(com.arthenica.ffmpegkit.Log log) {&#xA;&#xA;&#xA;        }&#xA;    }, new StatisticsCallback() {&#xA;&#xA;        @Override&#xA;        public void apply(Statistics statistics) {              &#xA;&#xA;        }&#xA;    });`&#xA;

    &#xA;

    and here is the updated log

    &#xA;

      ffmpeg version v4.5-dev-3393-g30322ebe3c Copyright (c) 2000-2021 the FFmpeg developers&#xA;    built with Android (7155654, based on r399163b1) clang version 11.0.5 (https://android.googlesource.com/toolchain/llvm-project 87f1315dfbea7c137aa2e6d362dbb457e388158d)&#xA;    configuration: --cross-prefix=arm-linux-androideabi- --sysroot=/files/android-sdk/ndk/22.1.7171670/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/storage/light/projects/ffmpeg-kit/prebuilt/android-arm-neon/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=armv7-a --cpu=armv7-a --target-os=android --enable-neon --enable-asm --enable-inline-asm --build-suffix=_neon --ar=arm-linux-androideabi-ar --cc=armv7a-linux-androideabi24-clang --cxx=armv7a-linux-androideabi24-clang&#x2B;&#x2B; --ranlib=arm-linux-androideabi-ranlib --strip=arm-linux-androideabi-strip --nm=arm-linux-androideabi-nm --extra-libs=&#x27;-L/storage/light/projects/ffmpeg-kit/prebuilt/android-arm-neon/cpu-features/lib -lndk_compat&#x27; --disable-autodetect --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --disable-static --enable-shared --enable-pthreads --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gmp --enable-gnutls --enable-libmp3lame --enable-libass --enable-iconv --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libopencore-amrnb --enable-libshine --enable-libspeex --enable-libdav1d --enable-libkvazaar --enable-libilbc --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libtwolame --disable-sdl2 --enable-libvo-amrwbenc --enable-libzimg --disable-openssl --enable-zlib --enable-mediacodec&#xA;    libavutil      57. 13.100 / 57. 13.100&#xA;    libavcodec     59. 15.102 / 59. 15.102&#xA;    libavformat    59. 10.100 / 59. 10.100&#xA;    libavdevice    59.  1.100 / 59.  1.100&#xA;    libavfilter     8. 21.100 /  8. 21.100&#xA;    libswscale      6.  1.102 /  6.  1.102&#xA;    libswresample   4.  0.100 /  4.  0.100&#xA;  Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;/storage/emulated/0/Download/7b85de4d-6af2-4eea-be9d-0d13c7f7819f/001001.mp4&#x27;:&#xA;    Metadata:&#xA;      major_brand     : isom&#xA;      minor_version   : 512&#xA;      compatible_brands: isomiso2mp41&#xA;      encoder         : Lavf59.10.100&#xA;    Duration: 00:00:29.60, start: 0.000000, bitrate: 467 kb/s&#xA;    Stream #0:0[0x1](und): Video: mpeg4 (mp4v / 0x7634706D), yuv420p(tv, bt470bg/bt709/bt709), 640x480 [SAR 1:2 DAR 2:3], 336 kb/s, 5 fps, 5 tbr, 10240 tbn (default)&#xA;      Metadata:&#xA;        handler_name    : VideoHandler&#xA;        vendor_id       : [0][0][0][0]&#xA;    Stream #0:1[0x2](und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 129 kb/s (default)&#xA;      Metadata:&#xA;        handler_name    : SoundHandler&#xA;        vendor_id       : [0][0][0][0]&#xA;  [mpeg4 @ 0xbacc1080] The "sub_text_format" option is deprecated: Deprecated, does nothing&#xA;  [aac @ 0xbacc1400] The "sub_text_format" option is deprecated: Deprecated, does nothing&#xA;  Stream mapping:&#xA;    Stream #0:0 -> #0:0 (mpeg4 (native) -> mpeg4 (native))&#xA;    Stream #0:1 -> #0:1 (aac (native) -> aac (native))&#xA;  Press [q] to stop, [?] for help&#xA;  [Parsed_subtitles_0 @ 0xf35141e0] libass API version: 0x1502000[Parsed_subtitles_0 @ 0xf35141e0] &#xA;  [Parsed_subtitles_0 @ 0xf35141e0] libass source: commit: 0.15.2-0-gc967a5a3d9ec0d36af1148b3fdf2f307a21dd122[Parsed_subtitles_0 @ 0xf35141e0] &#xA;  [Parsed_subtitles_0 @ 0xf35141e0] Shaper: FriBidi 1.0.11 (SIMPLE) HarfBuzz-ng 3.2.0 (COMPLEX)[Parsed_subtitles_0 @ 0xf35141e0] &#xA;  [Parsed_subtitles_0 @ 0xf35141e0] No usable fontconfig configuration file found, using fallback.[Parsed_subtitles_0 @ 0xf35141e0] &#xA;  [Parsed_subtitles_0 @ 0xf35141e0] Using font provider fontconfig[Parsed_subtitles_0 @ 0xf35141e0] &#xA;  [Parsed_subtitles_0 @ 0xf35141e0] fontselect: failed to find any fallback with glyph 0x0 for font: (Arial, 400, 0)[Parsed_subtitles_0 @ 0xf35141e0] &#xA;  Output #0, mp4, to &#x27;/storage/emulated/0/Download/7b85de4d-6af2-4eea-be9d-0d13c7f7819f/001001_sub5.mp4&#x27;:&#xA;    Metadata:&#xA;      major_brand     : isom&#xA;      minor_version   : 512&#xA;      compatible_brands: isomiso2mp41&#xA;      encoder         : Lavf59.10.100&#xA;    Stream #0:0(und): Video: mpeg4 (mp4v / 0x7634706D), yuv420p(tv, bt470bg/bt709/bt709, progressive), 640x480 [SAR 1:2 DAR 2:3], q=2-31, 200 kb/s, 5 fps, 10240 tbn (default)&#xA;      Metadata:&#xA;        handler_name    : VideoHandler&#xA;        vendor_id       : [0][0][0][0]&#xA;        encoder         : Lavc59.15.102 mpeg4&#xA;      Side data:&#xA;        cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A&#xA;    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)&#xA;      Metadata:&#xA;        handler_name    : SoundHandler&#xA;        vendor_id       : [0][0][0][0]&#xA;        encoder         : Lavc59.15.102 aac&#xA;  frame=    1 fps=0.0 q=5.7 size=       0kB time=00:00:01.55 bitrate=   0.2kbits/s speed= 2.4x    &#xA;  frame=   10 fps=8.7 q=2.0 size=       0kB time=00:00:03.50 bitrate=   0.1kbits/s speed=3.04x    &#xA;  frame=   20 fps= 12 q=2.0 size=       0kB time=00:00:05.36 bitrate=   0.1kbits/s speed=3.24x    &#xA;  frame=   32 fps= 15 q=2.0 size=     256kB time=00:00:07.87 bitrate= 266.5kbits/s speed=3.65x    &#xA;  frame=   45 fps= 17 q=2.0 size=     256kB time=00:00:10.49 bitrate= 199.8kbits/s speed=3.95x    &#xA;  frame=   58 fps= 18 q=2.0 size=     512kB time=00:00:12.97 bitrate= 323.2kbits/s speed=4.11x    &#xA;  frame=   69 fps= 19 q=2.0 size=     768kB time=00:00:15.23 bitrate= 413.1kbits/s speed=4.16x    &#xA;  frame=   81 fps= 19 q=2.0 size=     768kB time=00:00:17.60 bitrate= 357.5kbits/s speed=4.23x    &#xA;  frame=   92 fps= 20 q=2.0 size=    1024kB time=00:00:19.85 bitrate= 422.6kbits/s speed=4.26x    &#xA;  frame=  102 fps= 20 q=2.0 size=    1024kB time=00:00:21.89 bitrate= 383.1kbits/s speed=4.24x    &#xA;  frame=  115 fps= 20 q=2.0 size=    1280kB time=00:00:24.40 bitrate= 429.7kbits/s speed=4.31x    &#xA;  frame=  126 fps= 20 q=2.0 size=    1280kB time=00:00:26.67 bitrate= 393.0kbits/s speed=4.32x    &#xA;  frame=  139 fps= 21 q=2.0 size=    1536kB time=00:00:29.28 bitrate= 429.8kbits/s speed=4.39x    &#xA;  frame=  148 fps= 22 q=8.4 Lsize=    1701kB time=00:00:29.40 bitrate= 473.9kbits/s speed=4.34x    &#xA;  video:1225kB audio:466kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.561835%&#xA;  [aac @ 0xbacc2200] Qavg: 482.514&#xA;

    &#xA;