Recherche avancée

Médias (91)

Autres articles (75)

  • Gestion des droits de création et d’édition des objets

    8 février 2011, par

    Par défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;

  • Dépôt de média et thèmes par FTP

    31 mai 2013, par

    L’outil MédiaSPIP traite aussi les média transférés par la voie FTP. Si vous préférez déposer par cette voie, récupérez les identifiants d’accès vers votre site MédiaSPIP et utilisez votre client FTP favori.
    Vous trouverez dès le départ les dossiers suivants dans votre espace FTP : config/ : dossier de configuration du site IMG/ : dossier des média déjà traités et en ligne sur le site local/ : répertoire cache du site web themes/ : les thèmes ou les feuilles de style personnalisées tmp/ : dossier de travail (...)

  • Keeping control of your media in your hands

    13 avril 2011, par

    The vocabulary used on this site and around MediaSPIP in general, aims to avoid reference to Web 2.0 and the companies that profit from media-sharing.
    While using MediaSPIP, you are invited to avoid using words like "Brand", "Cloud" and "Market".
    MediaSPIP is designed to facilitate the sharing of creative media online, while allowing authors to retain complete control of their work.
    MediaSPIP aims to be accessible to as many people as possible and development is based on expanding the (...)

Sur d’autres sites (9433)

  • libav ffmpeg - streaming from both a mkv and input stream

    20 janvier 2020, par kealist

    I am trying to use ffmpeg libraries in C# with AutoGen bindings. The overall issue is that I am taking a collection of sources, some streams, and some .mkv containing recordings of a stream. As for now, they are all h264 and only video. For input streams, I am able to adjust the packets and broad cast them and that works fine, but any time I try to call av_interleaved_write_frame with packets from the MKV file, I get the error Error occurred: Invalid data found when processing input.

    Here is the main loop, where the error happens for mkv files. Is there an extra step ?

    /* read all packets */
    while (true)
    {
       if ((ret = ffmpeg.av_read_frame(ifmt_ctx, &packet)) < 0)
       {
           Console.WriteLine("Unable to read packet");
           break;
       }
       stream_index = (uint)packet.stream_index;
       type = ifmt_ctx->streams[packet.stream_index]->codecpar->codec_type;
       Console.WriteLine($"Demuxer gave frame of stream_index %{stream_index}");


       /* remux this frame without reencoding */
       ffmpeg.av_packet_rescale_ts(&packet,
           ifmt_ctx->streams[stream_index]->time_base,
           ofmt_ctx->streams[stream_index]->time_base);

       if (packet.stream_index < 0)
       {
           Console.WriteLine("Packet stream error");
       }



       ret = ffmpeg.av_write_frame(ofmt_ctx, &packet);
       if (ret < 0)
       {
           goto end;
       }
       else
       {
           ffmpeg.av_packet_unref(&packet);
       }
    }

    Anything need to be different for MKV files ?

    I get some contradictory error output where it claims it is annex b but also isn’t :

    [AVBSFContext @ 00000220eb657080] The input looks like it is Annex B already
    Automatically inserted bitstream filter 'h264_mp4toannexb'; args=''
    [mpegts @ 00000220ebace300] H.264 bitstream malformed, no startcode found, use the video bitstream filter 'h264_mp4toannexb' to fix it ('-bsf:v h264_mp4toannexb' option with ffmpeg)

    Verbose output from ffplay from an MKV file :

    ffplay version git-2020-01-13-7225479 Copyright (c) 2003-2020 the FFmpeg developers
     built with gcc 9.2.1 (GCC) 20200111
     configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
     libavutil      56. 38.100 / 56. 38.100
     libavcodec     58. 65.103 / 58. 65.103
     libavformat    58. 35.102 / 58. 35.102
     libavdevice    58.  9.103 / 58.  9.103
     libavfilter     7. 71.100 /  7. 71.100
     libswscale      5.  6.100 /  5.  6.100
     libswresample   3.  6.100 /  3.  6.100
     libpostproc    55.  6.100 / 55.  6.100
    Initialized direct3d renderer.
    [h264 @ 00000165ed18d140] Reinit context to 640x480, pix_fmt: yuv444p
    Input #0, matroska,webm, from '.\webcam_14_Test1.mkv':   0B f=0/0
     Metadata:
       ENCODER         : Lavf58.12.100
     Duration: 00:00:39.30, start: 0.000000, bitrate: 1943 kb/s
       Stream #0:0: Video: h264 (High 4:4:4 Predictive), 1 reference frame, yuv444p(progressive, left), 640x480 [SAR 1:1 DAR 4:3], 1k fps, 30 tbr, 1k tbn, 60 tbc (default)
       Metadata:
         DURATION        : 00:00:39.299000000
    [h264 @ 00000165f424e200] Reinit context to 640x480, pix_fmt: yuv444p
    [ffplay_buffer @ 00000165f52ea840] w:640 h:480 pixfmt:yuv444p tb:1/1000 fr:30/1 sar:1/1
    [auto_scaler_0 @ 00000165ed1d2c80] w:iw h:ih flags:'bicubic' interl:0
    [ffplay_buffersink @ 00000165f424ef00] auto-inserting filter 'auto_scaler_0' between the filter 'ffplay_buffer' and the filter 'ffplay_buffersink'
    [auto_scaler_0 @ 00000165ed1d2c80] w:640 h:480 fmt:yuv444p sar:1/1 -> w:640 h:480 fmt:yuv420p sar:1/1 flags:0x4
    Created 640x480 texture with SDL_PIXELFORMAT_IYUV.
    [AVIOContext @ 00000165ed179a40] Statistics: 9547965 bytes read, 0 seeks
  • How do I write to a file in Golang using a pointer to the C data ?

    20 juillet 2020, par nevernew

    I'm writing an app for the windows platform using FFmpeg and it's golang wrapper goav, but I'm having trouble understanding how to use the C pointers to gain access to an array.

    



    I'm trying to write the frame data, pointed to by a uint8 pointer from C, to a .ppm file in golang.

    



    Once I have this done, for proof of concept that FFmpeg is doing what I expect it to, I want to set the frames to a texture in OpenGl to make a video player with cool transitions ; any pointers to do that nice and efficiently would be so very helpful ! I'm guessing I need to write some shader code to draw the ppm as a texture...

    



    The PPM file structure looks pretty simple just the header and then a byte of data for each red, green and blue value of each pixel in the frame from top left to bottom right

    



    I'm starting to understanding how to cast the pointers between C and Go types, but how can I access the data and write it in Go with the same result as C ? In C I just have to set the pointer offset for the data and state how much of it to write :

    



    for (y = 0; y < height; y++) {
    fwrite(pFrame->data[0]+y*pFrame->linesize[0], 1, width*3, pFile);
}


    



    I've stripped out all the relevant parts of the C code, the wrapper and my code, shown below :

    



    C code - libavutil/frame.h

    



    #include 

typedef struct AVFrame {
#define AV_NUM_DATA_POINTERS 8
    uint8_t *data[AV_NUM_DATA_POINTERS];
    int linesize[AV_NUM_DATA_POINTERS];
}


    



    Golang goav wrapper

    



    package avutil&#xA;&#xA;/*&#xA;    #cgo pkg-config: libavutil&#xA;    #include <libavutil></libavutil>frame.h>&#xA;    #include &#xA;*/&#xA;import "C"&#xA;import (&#xA;    "unsafe"&#xA;)&#xA;&#xA;type Frame C.struct_AVFrame&#xA;&#xA;func Data(f *Frame) *uint8 {&#xA;    return (*uint8)(unsafe.Pointer((*C.uint8_t)(unsafe.Pointer(&amp;f.data))))&#xA;}&#xA;func Linesize(f *Frame) int {&#xA;    return int(*(*C.int)(unsafe.Pointer(&amp;f.linesize)))&#xA;}&#xA;

    &#xA;&#xA;

    My Golang code

    &#xA;&#xA;

    package main&#xA;&#xA;import "github.com/giorgisio/goav/avutil"&#xA;&#xA;func saveFrame(videoFrame *avutil.Frame, width int, height int, iFrame int) {&#xA;    var szFilename string&#xA;    var y int&#xA;    var file *os.File&#xA;    var err error&#xA;&#xA;    szFilename = ""&#xA;&#xA;    // Open file&#xA;    szFilename = fmt.Sprintf("frame%d.ppm", iFrame)&#xA;&#xA;    if file, err = os.Create(szFilename); err != nil {&#xA;        log.Println("Error Reading")&#xA;    }&#xA;&#xA;    // Write header&#xA;    fh := []byte(fmt.Sprintf("P6\n%d %d\n255\n", width, height))&#xA;    file.Write(fh)&#xA;    var b byte = 0&#xA;    // Write pixel data&#xA;    for y = 0; y &lt; height; y&#x2B;&#x2B; {&#xA;        d := avutil.Data(videoFrame) // d should be a pointer to the first byte of data&#xA;        l := avutil.Linesize(videoFrame)&#xA;&#xA;        // I&#x27;m basically lost trying to figure out how to correctly write&#xA;        // this to a file, the file is created, but when I open it in GIMP&#xA;        // the image is mostly black with glitchy fuzz - so it&#x27;s not being&#xA;        // written properly; the header seems to be ok, it knows the height&#xA;        // and width at least.&#xA;&#xA;        data := make([]byte, l*3)&#xA;&#xA;        ptr := unsafe.Pointer(d)&#xA;        for i := 0; i &lt; l; i&#x2B;&#x2B; {&#xA;            datum := (*uint8)(unsafe.Pointer(uintptr(ptr) &#x2B; (uintptr(i)&#x2B;(uintptr(y)*uintptr(l)))*unsafe.Sizeof(*d)))&#xA;            data = append(data, *datum)&#xA;            //fmt.Println(*datum)&#xA;        }&#xA;&#xA;        n, err := file.Write(data)&#xA;        if err != nil {&#xA;            log.Println("Error Writing:", szFilename, "-", n)&#xA;        }&#xA;    }&#xA;&#xA;    file.Close()&#xA;}&#xA;

    &#xA;&#xA;

    So, how can I write to a file using a pointer to the data, like you can do in C, and get the same result ?

    &#xA;&#xA;

    The first frame should be black so all 0's but I'm getting a glitchy fuzz, so it must be accessing some random data

    &#xA;&#xA;

    Update : My fix using a C function to save :

    &#xA;&#xA;

    package avutil&#xA;&#xA;/*&#xA;    #cgo pkg-config: libavutil&#xA;    #include <libavutil></libavutil>frame.h>&#xA;    #include &#xA;    #include &#xA;&#xA;    void SaveFrame(const char* location, AVFrame *pFrame, int width, int height) {&#xA;        FILE *pFile;&#xA;        int  y;&#xA;&#xA;        // Open file&#xA;        pFile=fopen(location, "wb");&#xA;        if(pFile==NULL)&#xA;            return;&#xA;&#xA;        // Write header&#xA;        fprintf(pFile, "P6\n%d %d\n255\n", width, height);&#xA;&#xA;        // Write pixel data&#xA;        for(y=0; ydata[0]&#x2B;y*pFrame->linesize[0], 1, width*3, pFile);&#xA;&#xA;        // Close file&#xA;        fclose(pFile);&#xA;    }&#xA;    uint8_t* GetData(AVFrame *pFrame) {&#xA;        return pFrame->data[0];&#xA;    }&#xA;*/&#xA;import "C"&#xA;

    &#xA;&#xA;

    I updated the avutil file, in the goav wrapper package, with this save function at the top, then pass it the frame context so it can get the data pointer from it. I also added this Go function to that avutil file to call the C function

    &#xA;&#xA;

    func SaveFrame(location string, f *Frame, width int, height int) {&#xA;    csLoc := C.CString(location)&#xA;    C.SaveFrame(csLoc, (*C.struct_AVFrame)(unsafe.Pointer(f)), C.int(width), C.int(height))&#xA;    C.free(unsafe.Pointer(csLoc))&#xA;}&#xA;

    &#xA;

  • How to concatenate 3 mp4 files using ffmpeg (facing error in resultant video) ?

    5 février 2021, par Mayank Thapliyal

    I have 3 videos of mp4 format. They have same resolution (640 X 1280) but other properties like frame rate etc are different. I want to join them back to back.So I gave a check on internet and I used the following method

    &#xA;

    :: Create File List&#xA;echo file file1.mp4 >  mylist.txt &#xA;echo file file2.mp4 >> mylist.txt&#xA;echo file file3.mp4 >> mylist.txt&#xA;&#xA;:: Concatenate Files&#xA;ffmpeg -f concat -i mylist.txt -c copy output.mp4&#xA;

    &#xA;

    But unfortunately it did not worked.In the resultant video, file1 part got freezed, and audio of whole video shifted (no idea how).And other methods are also not working properly

    &#xA;

    I just want to join them back to back.Any idea how to do it ?

    &#xA;

    Edit :- I gave a check on the output of the ffmpeg (using pause command in bat and discovered the following. Maybe it may help regarding the issue)

    &#xA;

    C:\Users\Cascade_Games\Desktop\Cascade Empire\ffmpeg-4.3.1-2020-10-01-full_build\bin>ffmpeg -f concat -i mylist.txt -vcodec copy -acodec copy Mux1.mp4&#xA;ffmpeg version 4.3.1-2020-10-01-full_build-www.gyan.dev Copyright (c) 2000-2020 the FFmpeg developers&#xA;  built with gcc 10.2.0 (Rev3, Built by MSYS2 project)&#xA;  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint&#xA;  libavutil      56. 51.100 / 56. 51.100&#xA;  libavcodec     58. 91.100 / 58. 91.100&#xA;  libavformat    58. 45.100 / 58. 45.100&#xA;  libavdevice    58. 10.100 / 58. 10.100&#xA;  libavfilter     7. 85.100 /  7. 85.100&#xA;  libswscale      5.  7.100 /  5.  7.100&#xA;  libswresample   3.  7.100 /  3.  7.100&#xA;  libpostproc    55.  7.100 / 55.  7.100&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 000002a0474e6a40] Auto-inserting h264_mp4toannexb bitstream filter&#xA;Input #0, concat, from &#x27;mylist.txt&#x27;:&#xA;  Duration: N/A, start: -0.023220, bitrate: 2447 kb/s&#xA;    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x640 [SAR 1:1 DAR 2:1], 2320 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc&#xA;    Metadata:&#xA;      handler_name    : VideoHandle&#xA;    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Output #0, mp4, to &#x27;Mux1.mp4&#x27;:&#xA;  Metadata:&#xA;    encoder         : Lavf58.45.100&#xA;    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x640 [SAR 1:1 DAR 2:1], q=2-31, 2320 kb/s, 30 fps, 30 tbr, 15360 tbn, 15360 tbc&#xA;    Metadata:&#xA;      handler_name    : VideoHandle&#xA;    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Stream mapping:&#xA;  Stream #0:0 -> #0:0 (copy)&#xA;  Stream #0:1 -> #0:1 (copy)&#xA;Press [q] to stop, [?] for help&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 000002a04750d700] Auto-inserting h264_mp4toannexb bitstream filter&#xA;[mov,mp4,m4a,3gp,3g2,mj2 @ 000002a0474ef040] Auto-inserting h264_mp4toannexb bitstream filter&#xA;[mp4 @ 000002a0478e09c0] Non-monotonous DTS in output stream 0:1; previous: 30282976, current: 27826977; changing to 30282977. This may result in incorrect timestamps in the output file.&#xA;[mp4 @ 000002a0478e09c0] Non-monotonous DTS in output stream 0:1; previous: 30282977, current: 27828129; changing to 30282978. This may result in incorrect timestamps in the output file.&#xA;(Same Thing was getting repeated,hence I deleted it)&#xA;[mp4 @ 000002a0478e09c0] Non-monotonous DTS in output stream 0:1; previous: 30283209, current: 28095393; changing to 30283210. This may result in incorrect timestamps in the output file.&#xA;[mp4 @ 000002a0478e09c0] Non-monotonous DTS in output stream 0:1; previous: 30283210, current: 28096545; changing to 30283211. This may result in incorrect timestamps in the output file.&#xA;[mp4 @ 000002a0478e09c0] aac bitstream error&#xA;    Last message repeated 234 times&#xA;frame=18937 fps=11438 q=-1.0 Lsize=   49051kB time=00:11:26.69 bitrate= 585.2kbits/s speed= 415x&#xA;video:40720kB audio:7653kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.401324%&#xA;

    &#xA;

    Edit :-&#xA;Info of all files (I have changed the video name to 1.mp4,2.mp4,3.mp4)

    &#xA;

    C:\Users\Cascade_Games\Desktop\Cascade Empire\ffmpeg-4.3.1-2020-10-01-full_build\bin>ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4&#xA;ffmpeg version 4.3.1-2020-10-01-full_build-www.gyan.dev Copyright (c) 2000-2020 the FFmpeg developers&#xA;  built with gcc 10.2.0 (Rev3, Built by MSYS2 project)&#xA;  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint&#xA;  libavutil      56. 51.100 / 56. 51.100&#xA;  libavcodec     58. 91.100 / 58. 91.100&#xA;  libavformat    58. 45.100 / 58. 45.100&#xA;  libavdevice    58. 10.100 / 58. 10.100&#xA;  libavfilter     7. 85.100 /  7. 85.100&#xA;  libswscale      5.  7.100 /  5.  7.100&#xA;  libswresample   3.  7.100 /  3.  7.100&#xA;  libpostproc    55.  7.100 / 55.  7.100&#xA;Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;1.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:05.27, start: 0.000000, bitrate: 2337 kb/s&#xA;    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x640 [SAR 1:1 DAR 2:1], 2320 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandle&#xA;    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;Input #1, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;2.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:10:25.70, start: 0.000000, bitrate: 616 kb/s&#xA;    Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x640 [SAR 1:1 DAR 2:1], 511 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #1:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 96 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandle&#xA;Input #2, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;3.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2avc1mp41&#xA;    encoder         : Lavf58.45.100&#xA;  Duration: 00:00:08.50, start: 0.000000, bitrate: 447 kb/s&#xA;    Stream #2:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p, 1280x640 [SAR 1:1 DAR 2:1], 228 kb/s, 2 fps, 2 tbr, 16384 tbn, 4 tbc (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;    Stream #2:1(und): Audio: mp3 (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 319 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;

    &#xA;