Advanced search

Medias (91)

Other articles (80)

  • La sauvegarde automatique de canaux SPIP

    1 April 2010, by

    Dans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
    Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...)

  • Support audio et vidéo HTML5

    10 April 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

  • De l’upload à la vidéo finale [version standalone]

    31 January 2010, by

    Le chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
    Upload et récupération d’informations de la vidéo source
    Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
    Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier; La génération d’une vignette : extraction d’une (...)

On other websites (6295)

  • How do you properly free a BitStreamFilter (bsf) without getting a double free error?

    19 January 2021, by Alexis Wilke

    I'm trying to write a C++ class handling MP4 movies via ffmpeg.

    


    First I created a couple of functions to use with std::unique<>() so that way things get released even on exceptions.

    


    However, I get a double free when I try to free the BitStreamFilter object, yet the documentation clearly says that each av_bsf_alloc() must be paired with an av_bsf_free() call.

    


    


    @param ctx a pointer into which the pointer to the newly-allocated context
will be written. It must be freed with av_bsf_free() after the
filtering is done.

    


    


    Note: emphasis mine.

    


    However, at the time I call the avformat_close_input() I get a double free error, even if I haven't used the two contexts for anything!? I'm thinking that there may be a packet that both allocate and both try to free. But since these two contexts are not directly connected, I really don't understand how they end up freeing something twice.

    


    Below is code which reproduce the error (at least on an amd64 platform). Once compiled, you can just execute it. Make sure to specify a filename as in:

    


    ./ffmpeg_demuxer_test mymovie.mp4


    


    I used the following command to compile & link the code:

    


    $ /usr/bin/c++ -std=c++17 -DDEBUG -D_DEBUG -D_GLIBCXX_ASSERTIONS -g -O0 \
    -fsanitize=address -fsanitize=enum -fsanitize=unreachable \
    -o ffmpeg_demuxer_test ffmpeg_demuxer_test.cpp \
    -lavformat -lavcodec


    


    Notice the -fsanitize=... options to capture errors such as a double free error.

    


    Here is the code:

    


    extern "C" {&#xA;#include    <libavformat></libavformat>avformat.h>&#xA;#include    <libavformat></libavformat>avio.h>&#xA;#include    <libavcodec></libavcodec>avcodec.h>&#xA;}&#xA;#include    <iostream>&#xA;#include    <memory>&#xA;&#xA;&#xA;void ffmpeg_demuxer_avformat_context_free(AVFormatContext * context)&#xA;{&#xA;    if(context != nullptr) avformat_close_input(&amp;context);&#xA;}&#xA;&#xA;void ffmpeg_demuxer_av_bsf_free(AVBSFContext * context)&#xA;{&#xA;    if(context != nullptr) av_bsf_free(&amp;context);&#xA;}&#xA;&#xA;&#xA;int main(int argc, char * argv [])&#xA;{&#xA;    if(argc != 2)&#xA;    {&#xA;        std::cout &lt;&lt; "Usage: " &lt;&lt; argv[0] &lt;&lt; " movie.mp4" &lt;&lt; std::endl;&#xA;        exit(1);&#xA;    }&#xA;&#xA;    // init the AV libraries&#xA;    //&#xA;    av_register_all();&#xA;    avformat_network_init();&#xA;&#xA;    // allocate the AVFormatContext&#xA;    //&#xA;    AVFormatContext * format_context(nullptr);&#xA;    int const r1(avformat_open_input(&#xA;                  &amp;format_context&#xA;                , argv[1]&#xA;                , nullptr           // input format&#xA;                , nullptr));        // options&#xA;    if(r1 != 0&#xA;    || format_context == nullptr)&#xA;    {&#xA;        throw std::bad_alloc();&#xA;    }&#xA;&#xA;    auto f_format_context = std::unique_ptr&lt;&#xA;              AVFormatContext&#xA;            , decltype(&amp;ffmpeg_demuxer_avformat_context_free)>(&#xA;                      format_context&#xA;                    , &amp;ffmpeg_demuxer_avformat_context_free);&#xA;&#xA;&#xA;    // now allocate a stream&#xA;    //&#xA;    if(avformat_find_stream_info(f_format_context.get(), nullptr) &lt; 0)&#xA;    {&#xA;        throw std::runtime_error("ffmpeg: Could not find stream info");&#xA;    }&#xA;&#xA;    auto f_video_stream_index = av_find_best_stream(&#xA;              f_format_context.get()&#xA;            , AVMEDIA_TYPE_VIDEO&#xA;            , -1            // wanted stream (any)&#xA;            , -1            // related stream (none)&#xA;            , nullptr       // AVCodec *&#xA;            , 0);           // flags&#xA;    if(f_video_stream_index &lt; 0)&#xA;    {&#xA;        throw std::runtime_error("ffmpeg: Could not find stream in input file");&#xA;    }&#xA;    if(static_cast<unsigned int="int">(f_video_stream_index) >= f_format_context->nb_streams)&#xA;    {&#xA;        throw std::range_error("ffmpeg: Stream index out of range");&#xA;    }&#xA;&#xA;    auto f_stream = f_format_context->streams[f_video_stream_index];&#xA;&#xA;    auto f_video_codec = f_stream->codecpar->codec_id;&#xA;&#xA;    int f_bit_depth(0);&#xA;    switch(f_stream->codecpar->format)&#xA;    {&#xA;    case AV_PIX_FMT_YUV420P10LE:&#xA;        f_bit_depth = 10;&#xA;        break;&#xA;&#xA;    case AV_PIX_FMT_YUV420P12LE:&#xA;        f_bit_depth = 12;&#xA;        break;&#xA;&#xA;    default:&#xA;        f_bit_depth = 8;&#xA;        break;&#xA;&#xA;    }&#xA;&#xA;    bool f_mp4_h264 = f_video_codec == AV_CODEC_ID_H264 &amp;&amp; (&#xA;               strcmp(f_format_context->iformat->long_name, "QuickTime / MOV") == 0&#xA;            || strcmp(f_format_context->iformat->long_name, "FLV (Flash Video)") == 0&#xA;            || strcmp(f_format_context->iformat->long_name, "Matroska / WebM") == 0&#xA;        );&#xA;&#xA;    if(f_mp4_h264)&#xA;    {&#xA;        AVBitStreamFilter const * bsf_stream_filter(av_bsf_get_by_name("h264_mp4toannexb"));&#xA;        if(bsf_stream_filter == nullptr)&#xA;        {&#xA;            throw std::runtime_error("av_bsf_get_by_name(\"h264_mp4toannexb\") failed");&#xA;        }&#xA;        AVBSFContext * bsf_context(nullptr);&#xA;        int const r2(av_bsf_alloc(bsf_stream_filter, &amp;bsf_context));&#xA;        if(r2 &lt; 0&#xA;        || bsf_context == nullptr)&#xA;        {&#xA;            throw std::bad_alloc();&#xA;        }&#xA;        auto f_bsf_context = std::unique_ptr&lt;&#xA;                  AVBSFContext&#xA;                , decltype(&amp;ffmpeg_demuxer_av_bsf_free)>(&#xA;                          bsf_context&#xA;                        , &amp;ffmpeg_demuxer_av_bsf_free);&#xA;        f_bsf_context->par_in = f_stream->codecpar;&#xA;        if(av_bsf_init(f_bsf_context.get()) &lt; 0)&#xA;        {&#xA;            throw std::runtime_error("av_bsf_init() failed");&#xA;        }&#xA;    }&#xA;&#xA;    return 0;&#xA;}&#xA;</unsigned></memory></iostream>

    &#xA;

    So. Am I misreading the documentation or misusing one of the free/close function? I don't think that the AVBSFContext itself gets released when I close the AVFormatContext, but I may be mistaken?

    &#xA;

    I won't put "C" as a tag since it will get removed even though this applies to C. It's not because I use C++ that I get a double free (i.e. it happens in the ffmpeg C library).

    &#xA;

  • V2.97a.20120513 - Fixes for Android 2.3 playback, onPosition() in HTML5, Flash 9 double-play edge case. Minor new Flash 9-specific features.

    14 May 2012, by Scott Schiller

    m script/soundmanager2-jsmin.js m script/soundmanager2-nodebug-jsmin.js m script/soundmanager2-nodebug.js m script/soundmanager2.js m src/SoundManager2.as m src/SoundManager2_AS3.as m swf/soundmanager2.swf m swf/soundmanager2_debug.swf m swf/soundmanager2_flash9.swf m (...)

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

    7 September 2022, by 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;