Recherche avancée

Médias (0)

Mot : - Tags -/signalement

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (71)

  • 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 ;

  • Supporting all media types

    13 avril 2011, par

    Unlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)

  • Qualité du média après traitement

    21 juin 2013, par

    Le bon réglage du logiciel qui traite les média est important pour un équilibre entre les partis ( bande passante de l’hébergeur, qualité du média pour le rédacteur et le visiteur, accessibilité pour le visiteur ). Comment régler la qualité de son média ?
    Plus la qualité du média est importante, plus la bande passante sera utilisée. Le visiteur avec une connexion internet à petit débit devra attendre plus longtemps. Inversement plus, la qualité du média est pauvre et donc le média devient dégradé voire (...)

Sur d’autres sites (11135)

  • the workstation' Image decode and render perform,use same code,worse than laptop

    12 janvier 2024, par karma1995

    i'm working on Image decoding and rendering,trying to develop a software to process and display 4K TIFF and DPX sequence.Developing on my laptop and testing on both laptop and workstation.It's wired that workstaion's performance worse than laptop,my hardware and code information is here :
The information of both machine

    


      

    1. Laptop
platform : windows 11
CPU : Intel I9-13900H 14C 20T
GPU : RTX 4060 Laptop GPU
Mem : 64G
Disk : SSD
    2. 


    3. Workstaton
platform : windows 10
CPU : Intel Xeon 56C 112T
GPU : RTX A6000
Mem : 512
Disk : SSD
IDE
IDE is Qt, version 5.14.0, both on laptop and workstation.
    4. 


    


    For Image decoding, ffmpeg is used

    


    void SeqDecodeTask::run()&#xA;{&#xA;    QElapsedTimer timer;&#xA;    timer.start();&#xA;    SwsContext* swsCtx = nullptr;&#xA;    AVPixelFormat srcFmt = AV_PIX_FMT_NONE;&#xA;    AVPixelFormat dstFmt = AV_PIX_FMT_NONE;&#xA;    AVFormatContext* fmtCtx;&#xA;    const AVCodec* codec;&#xA;    AVCodecContext* codecCtx;&#xA;    AVStream* stream;&#xA;    int index = -1;&#xA;    AVPacket pkt;&#xA;    AVFrame* frame = av_frame_alloc();&#xA;    AVFrame* output = av_frame_alloc();&#xA;    fmtCtx = avformat_alloc_context();&#xA;&#xA;    if(avformat_open_input(&amp;fmtCtx, file_.toUtf8(),&#xA;                           nullptr, nullptr) &lt; 0) {&#xA;        return;&#xA;    }&#xA;    if (avformat_find_stream_info(fmtCtx, nullptr) &lt; 0) {&#xA;        return;&#xA;    }&#xA;    for (unsigned int i = 0; i &lt; fmtCtx->nb_streams; i&#x2B;&#x2B;) {&#xA;        if (fmtCtx->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) {&#xA;            index = static_cast<int>(i);&#xA;            continue;&#xA;        }&#xA;    }&#xA;    if (index &lt; 0) {&#xA;        return;&#xA;    }&#xA;    stream = fmtCtx->streams[index];&#xA;    fmtCtx->streams[index]->discard = AVDISCARD_DEFAULT;&#xA;    codecCtx = avcodec_alloc_context3(nullptr);&#xA;    if (avcodec_parameters_to_context(&#xA;                codecCtx,&#xA;                fmtCtx->streams[index]->codecpar) &lt; 0) {&#xA;        return;&#xA;    }&#xA;    codec = avcodec_find_decoder(codecCtx->codec_id);&#xA;    if (codec == nullptr) {&#xA;        return;&#xA;    }&#xA;    if (avcodec_open2(codecCtx, codec, nullptr) &lt; 0) {&#xA;        return;&#xA;    }&#xA;    av_read_frame(fmtCtx, &amp;pkt);&#xA;    avcodec_send_packet(codecCtx, &amp;pkt);&#xA;    avcodec_receive_frame(codecCtx, frame);&#xA;&#xA;    if (srcFmt == AV_PIX_FMT_NONE) {&#xA;        srcFmt = static_cast<avpixelformat>(frame->format);&#xA;    }&#xA;    dstFmt = AV_PIX_FMT_RGBA64LE;&#xA;    cv::Mat mat(cv::Size(frame->width, frame->height), CV_16UC4);&#xA;    if (!(frame->width &lt; 0 || frame->height &lt; 0)) {&#xA;        if (swsCtx == nullptr) {&#xA;            swsCtx = sws_alloc_context();&#xA;            swsCtx = sws_getContext(frame->width,&#xA;                                    frame->height,&#xA;                                    srcFmt,&#xA;                                    frame->width,&#xA;                                    frame->height,&#xA;                                    dstFmt,&#xA;                                    SWS_BICUBIC, nullptr,&#xA;                                    nullptr, nullptr);&#xA;        }&#xA;&#xA;        swsCtx = sws_getContext(frame->width, frame->height,&#xA;                                srcFmt,&#xA;                                frame->width, frame->height,&#xA;                                dstFmt,&#xA;                                SWS_BICUBIC, nullptr, nullptr, nullptr);&#xA;        av_image_fill_arrays(output->data, output->linesize,&#xA;                             static_cast(mat.data),&#xA;                             dstFmt,&#xA;                             frame->width, frame->height, 1);&#xA;        sws_scale(swsCtx, static_cast<const>(frame->data),&#xA;                  frame->linesize, 0, frame->height, output->data, output->linesize);&#xA;    }&#xA;    av_packet_unref(&amp;pkt);&#xA;    av_frame_free(&amp;output);&#xA;    av_frame_free(&amp;frame);&#xA;    sws_freeContext(swsCtx);&#xA;    avcodec_free_context(&amp;codecCtx);&#xA;    avformat_free_context(fmtCtx);&#xA;&#xA;    buffer_->edit(true, item_, index_, file_, mat);&#xA;&#xA;    emit decodeTaskFinished();&#xA;    qDebug() &lt;&lt; "decode time " &lt;&lt; timer.elapsed();&#xA;}&#xA;</const></avpixelformat></int>

    &#xA;

    Simply get the media information, decode, format transform and store in mat.It's a QRunnable class for multithread.

    &#xA;

    For rendering, have tried both QPainter and SceneGraph&#xA;QPainter :

    &#xA;

    void PaintedItemRender::paint(QPainter *painter)&#xA;{&#xA;    QElapsedTimer timer;&#xA;    timer.start();&#xA;    painter->setRenderHint(QPainter::Antialiasing, true);&#xA;    int width = this->width();&#xA;    int height = this->height();&#xA;//    if (defaultWidth_ == NULL || defaultHeight_ == NULL) {&#xA;//        defaultWidth_ = width;&#xA;//        defaultHeight_ = height;&#xA;//    }&#xA;    painter->setBrush(Qt::black);&#xA;    painter->drawRect(0, 0, width, height);&#xA;&#xA;    QImage img = image_.scaled(QSize(width, height), Qt::KeepAspectRatio);&#xA;    /* calculate display position */&#xA;    int x = (this->width() - img.width()) / 2;&#xA;    int y = (this->height() - img.height()) / 2;&#xA;&#xA;    painter->drawImage(QPoint(x, y), img);&#xA;    qDebug() &lt;&lt; "paint time: " &lt;code>

    &#xA;

    SceneGraph

    &#xA;

    QSGNode *SceneGraphRender::updatePaintNode(QSGNode* oldNode,&#xA;                                   QQuickItem::UpdatePaintNodeData* updatePaintNodeData)&#xA;{&#xA;    Q_UNUSED(updatePaintNodeData)&#xA;    QSGSimpleTextureNode* tex = nullptr;&#xA;    QSGTransformNode* trans = nullptr;&#xA;    if(!oldNode) {&#xA;        tex = new QSGSimpleTextureNode;&#xA;        tex->setFlag(QSGNode::OwnsMaterial, true);&#xA;        tex->setFiltering(QSGTexture::Linear);&#xA;        tex->setTexture(window()->createTextureFromImage(image_));&#xA;        tex->setRect(0, 0, width(), height());&#xA;        trans = new QSGTransformNode();&#xA;        if (!image_.isNull()) {&#xA;            float factorW = 1;&#xA;            float factorH = 1;&#xA;            if (image_.width() > width()) {&#xA;                factorH = factorW = width() / image_.width();&#xA;            }&#xA;            else if (image_.height() > height()) {&#xA;                factorW = factorH = height() / image_.height();&#xA;            }&#xA;            else if (image_.width() &lt; width() &amp;&amp; image_.height() &lt; height()) {&#xA;                if (width() - image_.width() &lt; image_.height() - height()) {&#xA;                    factorH = factorW = width() / image_.width();&#xA;                }&#xA;                else {&#xA;                    factorH = factorW = height() / image_.height();&#xA;                }&#xA;            }&#xA;            QMatrix4x4 mat;&#xA;            float scaledW = tex->rect().width() * factorW;&#xA;            float scaledH = tex->rect().height() * factorH;&#xA;            if (width() > scaledW) {&#xA;                mat.translate((width() - tex->rect().width() * factorW) / 2, 0);&#xA;            }&#xA;            if (height() > scaledH) {&#xA;                mat.translate(0, (height() - tex->rect().height() * factorH) / 2);&#xA;            }&#xA;            mat.scale(factorW, factorH);&#xA;            trans->setMatrix(mat);&#xA;            trans->markDirty(QSGNode::DirtyMatrix);&#xA;        }&#xA;        else {&#xA;            scaled_ = true;&#xA;        }&#xA;        trans->appendChildNode(tex);&#xA;    }&#xA;    else {&#xA;        trans = static_cast<qsgtransformnode>(oldNode);&#xA;        tex = static_cast<qsgsimpletexturenode>(trans->childAtIndex(0));&#xA;        QSGTexture* texture = tex->texture();&#xA;        tex->setTexture(window()->createTextureFromImage(image_));&#xA;        tex->setRect(0, 0, image_.width(), image_.height());&#xA;        texture->deleteLater();&#xA;        if(!image_.isNull() &amp;&amp; scaled_) {&#xA;            float factorW = 1;&#xA;            float factorH = 1;&#xA;            if (image_.width() > width()) {&#xA;                factorH = factorW = width() / image_.width();&#xA;            }&#xA;            else if (image_.height() > height()) {&#xA;                factorW = factorH = height() / image_.height();&#xA;            }&#xA;            else if (image_.width() &lt; width() &amp;&amp; image_.height() &lt; height()) {&#xA;                if (width() - image_.width() &lt; image_.height() - height()) {&#xA;                    factorH = factorW = width() / image_.width();&#xA;                }&#xA;                else {&#xA;                    factorH = factorW = height() / image_.height();&#xA;                }&#xA;&#xA;            }&#xA;            QMatrix4x4 mat;&#xA;            float scaledW = tex->rect().width() * factorW;&#xA;            float scaledH = tex->rect().height() * factorH;&#xA;            if (width() > scaledW) {&#xA;                mat.translate((width() - tex->rect().width() * factorW) / 2, 0);&#xA;            }&#xA;            if (height() > scaledH) {&#xA;                mat.translate(0, (height() - tex->rect().height() * factorH) / 2);&#xA;            }&#xA;            mat.scale(factorW, factorH);&#xA;            trans->setMatrix(mat);&#xA;            trans->markDirty(QSGNode::DirtyMatrix);&#xA;            scaled_ = false;&#xA;        }&#xA;    }&#xA;    return trans;&#xA;}&#xA;</qsgsimpletexturenode></qsgtransformnode>

    &#xA;

    Time Usage&#xA;Test image sequence is 4K DPX sequence, 12 bits, RGB.Decode only use one thread ;

    &#xA;

      &#xA;
    1. Laptop&#xA;decoding : around 200ms per frame&#xA;rendering : around 20ms per frame
    2. &#xA;

    3. Workstation&#xA;decoding : over 600ms per frame&#xA;rendering : around 80ms per frame
    4. &#xA;

    &#xA;

    i'm tring to figure out the reason that make performance diffrent and fix it, appreciate for any advice, thank you.

    &#xA;

  • when using ffmpeg encode to hevc , but got 'rawvideo' [closed]

    3 septembre 2023, par 112292454

    i tried use ffmpeg to convert some types video to h265 to save disk space&#xA;but for some video, successfully converted and the file size smaller, but cannot play。&#xA;the result video codec name is "rawvideo",not hevc.

    &#xA;

    the ffporbe of raw video is

    &#xA;

    ffprobe version 5.1.2-3ubuntu1 Copyright (c) 2007-2022 the FFmpeg developers&#xA;  built with gcc 12 (Ubuntu 12.2.0-14ubuntu2)&#xA;  configuration: --prefix=/usr --extra-version=3ubuntu1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared&#xA;  libavutil      57. 28.100 / 57. 28.100&#xA;  libavcodec     59. 37.100 / 59. 37.100&#xA;  libavformat    59. 27.100 / 59. 27.100&#xA;  libavdevice    59.  7.100 / 59.  7.100&#xA;  libavfilter     8. 44.100 /  8. 44.100&#xA;  libswscale      6.  7.100 /  6.  7.100&#xA;  libswresample   4.  7.100 /  4.  7.100&#xA;  libpostproc    56.  6.100 / 56.  6.100&#xA;Input #0, avi, from &#x27;xxx.avi&#x27;:&#xA;  Duration: 00:06:11.62, start: 0.000000, bitrate: 5196 kb/s&#xA;  Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 5057 kb/s, 29 fps, 29 tbr, 29 tbn&#xA;  Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, fltp, 128 kb/s&#xA;

    &#xA;

    or

    &#xA;

     ffprobe  -v error -show_entries stream=duration,r_frame_rate,bit_rate,width,height,codec_name:stream=codec_name,bit_rate:stream=sample_rate -of json &#x27;xxx.avi&#x27;&#xA;{&#xA;    "programs": [&#xA;&#xA;    ],&#xA;    "streams": [&#xA;        {&#xA;            "codec_name": "mpeg4",&#xA;            "width": 1280,&#xA;            "height": 720,&#xA;            "r_frame_rate": "29/1",&#xA;            "duration": "371.620058",&#xA;            "bit_rate": "5057186"&#xA;        },&#xA;        {&#xA;            "codec_name": "mp3",&#xA;            "sample_rate": "44100",&#xA;            "r_frame_rate": "0/0",&#xA;            "bit_rate": "128000"&#xA;        }&#xA;    ]&#xA;}&#xA;

    &#xA;

    then, i used ffmpeg simple&#xA;(I'm guessing that this problem is just a stupid mistake of newbie,maybe like not use avi ? And the raw video is nsfw, maybe not suitable for release, XD--------but if really need it,can also supply)

    &#xA;

    ffmpeg -i xxx.avi -c:v libx265 &#x27;compressed_xxx.avi&#x27;&#xA;&#xA;ffmpeg version 5.1.2-3ubuntu1 Copyright (c) 2000-2022 the FFmpeg developers&#xA;  built with gcc 12 (Ubuntu 12.2.0-14ubuntu2)&#xA;  configuration: --prefix=/usr --extra-version=3ubuntu1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-libjxl --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared&#xA;  libavutil      57. 28.100 / 57. 28.100&#xA;  libavcodec     59. 37.100 / 59. 37.100&#xA;  libavformat    59. 27.100 / 59. 27.100&#xA;  libavdevice    59.  7.100 / 59.  7.100&#xA;  libavfilter     8. 44.100 /  8. 44.100&#xA;  libswscale      6.  7.100 /  6.  7.100&#xA;  libswresample   4.  7.100 /  4.  7.100&#xA;  libpostproc    56.  6.100 / 56.  6.100&#xA;Input #0, avi, from &#x27;xxx.avi&#x27;:&#xA;  Duration: 00:06:11.62, start: 0.000000, bitrate: 5196 kb/s&#xA;  Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 5057 kb/s, 29 fps, 29 tbr, 29 tbn&#xA;  Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, fltp, 128 kb/s&#xA;File &#x27;compressed_xxx.avi&#x27; already exists. Overwrite? [y/N] y&#xA;&#xA;Stream mapping:&#xA;  Stream #0:0 -> #0:0 (mpeg4 (native) -> hevc (libx265))&#xA;  Stream #0:1 -> #0:1 (mp3 (mp3float) -> mp3 (libmp3lame))&#xA;Press [q] to stop, [?] for help&#xA;x265 [info]: HEVC encoder version 3.5&#x2B;1-f0c1022b6&#xA;x265 [info]: build info [Linux][GCC 11.2.0][64 bit] 8bit&#x2B;10bit&#x2B;12bit&#xA;x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX&#xA;x265 [info]: Main profile, Level-3.1 (Main tier)&#xA;x265 [info]: Thread pool 0 using 40 threads on numa nodes 0,1&#xA;x265 [info]: Slices                              : 1&#xA;x265 [info]: frame threads / pool features       : 5 / wpp(12 rows)&#xA;x265 [info]: Coding QT: max CU size, min CU size : 64 / 8&#xA;x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra&#xA;x265 [info]: ME / range / subpel / merge         : hex / 57 / 2 / 3&#xA;x265 [info]: Keyframe min / max / scenecut / bias  : 25 / 250 / 40 / 5.00&#xA;x265 [info]: Lookahead / bframes / badapt        : 20 / 4 / 2&#xA;x265 [info]: b-pyramid / weightp / weightb       : 1 / 1 / 0&#xA;x265 [info]: References / ref-limit  cu / depth  : 3 / off / on&#xA;x265 [info]: AQ: mode / str / qg-size / cu-tree  : 2 / 1.0 / 32 / 1&#xA;x265 [info]: Rate Control / qCompress            : CRF-28.0 / 0.60&#xA;x265 [info]: tools: rd=3 psy-rd=2.00 early-skip rskip mode=1 signhide tmvp&#xA;x265 [info]: tools: b-intra strong-intra-smoothing lslices=4 deblock sao&#xA;Output #0, avi, to &#x27;compressed_xxx.avi&#x27;:&#xA;  Metadata:&#xA;    ISFT            : Lavf59.27.100&#xA;  Stream #0:0: Video: hevc, yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 29 fps, 29 tbn&#xA;    Metadata:&#xA;      encoder         : Lavc59.37.100 libx265&#xA;    Side data:&#xA;      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A&#xA;  Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, fltp&#xA;    Metadata:&#xA;      encoder         : Lavc59.37.100 libmp3lame&#xA;frame=10776 fps= 33 q=36.0 Lsize=   42885kB time=00:06:11.59 bitrate= 945.4kbits/s speed=1.15x&#xA;video:36477kB audio:5807kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.422882%&#xA;x265 [info]: frame I:     63, Avg QP:26.58  kb/s: 5832.53&#xA;x265 [info]: frame P:   3716, Avg QP:28.99  kb/s: 1837.94&#xA;x265 [info]: frame B:   6997, Avg QP:35.36  kb/s: 203.80&#xA;x265 [info]: Weighted P-Frames: Y:0.1% UV:0.0%&#xA;x265 [info]: consecutive B-frames: 2.8% 53.6% 2.0% 39.0% 2.7%&#xA;&#xA;encoded 10776 frames in 322.72s (33.39 fps), 800.22 kb/s, Avg QP:33.11&#xA;

    &#xA;

    ffprobe to the result :

    &#xA;

    Input #0, avi, from &#x27;compressed_xxx.avi&#x27;:&#xA;  Metadata:&#xA;    software        : Lavf59.27.100&#xA;  Duration: 00:06:11.62, start: 0.000000, bitrate: 945 kb/s&#xA;  Stream #0:0: Video: rawvideo, bgr24, 1280x720, 804 kb/s, SAR 1:1 DAR 16:9, 29 fps, 29 tbr, 29 tbn&#xA;  Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 44100 Hz, stereo, fltp, 128 kb/s&#xA;&#xA;or:&#xA;&#xA;{&#xA;    "programs": [&#xA;&#xA;    ],&#xA;    "streams": [&#xA;        {&#xA;            "codec_name": "rawvideo",&#xA;            "width": 1280,&#xA;            "height": 720,&#xA;            "r_frame_rate": "30/1",&#xA;            "duration": "371.633333",&#xA;            "bit_rate": "792222"&#xA;        },&#xA;        {&#xA;            "codec_name": "aac",&#xA;            "sample_rate": "44100",&#xA;            "r_frame_rate": "0/0",&#xA;            "duration": "371.635374",&#xA;            "bit_rate": "128000"&#xA;        }&#xA;    ]&#xA;}&#xA;

    &#xA;

    the cedec show like 'rawvideo', not for other video that can correct play, like :

    &#xA;

    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from &#x27;compressed_yyy.mp4&#x27;:&#xA;  Metadata:&#xA;    major_brand     : isom&#xA;    minor_version   : 512&#xA;    compatible_brands: isomiso2mp41&#xA;    encoder         : Lavf59.27.100&#xA;  Duration: 00:32:16.26, start: 0.000000, bitrate: 604 kb/s&#xA;  Stream #0:0[0x1](und): Video: hevc (Main) (hev1 / 0x31766568), yuv420p(tv, progressive), 1280x720, 468 kb/s, 30 fps, 30 tbr, 15360 tbn (default)&#xA;    Metadata:&#xA;      handler_name    : VideoHandler&#xA;      vendor_id       : [0][0][0][0]&#xA;      encoder         : Lavc59.37.100 libx265&#xA;  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 127 kb/s (default)&#xA;    Metadata:&#xA;      handler_name    : SoundHandler&#xA;      vendor_id       : [0][0][0][0]&#xA;&#xA;or:&#xA;&#xA;{&#xA;    "programs": [&#xA;&#xA;    ],&#xA;    "streams": [&#xA;        {&#xA;            "codec_name": "hevc",&#xA;            "width": 1280,&#xA;            "height": 720,&#xA;            "r_frame_rate": "30/1",&#xA;            "duration": "1936.233333",&#xA;            "bit_rate": "468393"&#xA;        },&#xA;        {&#xA;            "codec_name": "aac",&#xA;            "sample_rate": "48000",&#xA;            "r_frame_rate": "0/0",&#xA;            "duration": "1936.256000",&#xA;            "bit_rate": "127151"&#xA;        }&#xA;    ]&#xA;}&#xA;

    &#xA;

    does i need any config to specify in ffmpeg commands to get the right codec ?&#xA;(btw, does this video bitrate is normally ?)

    &#xA;

  • How to send time stamps to ffmpeg when encoding uncompressed video frames via stdin ?

    7 août 2023, par Spacy

    I'm writing a C# application, but this question applies to any programming language.&#xA;I know it is possible to pass uncompressed video frames (in yuv420p format) via stdin to ffmpeg.exe, but I recorded these frames to RAM from a webcam that has a variable frame rate. I have the exact time stamps for each frame. How do I send the time stamps to ffmpeg.exe together with the uncompressed frame data ?

    &#xA;

    I would prefer if it was possible to send them within the stdin byte stream, but I could also provide them up front when invoking ffmpeg.exe (this might become a very long argument list though). I could also write them to a text file on disk if nothing else works.

    &#xA;