Recherche avancée

Médias (1)

Mot : - Tags -/intégration

Autres articles (107)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

Sur d’autres sites (16207)

  • FFMpeg C++ encoder fails with hardware acceleration quick sync intel

    28 août 2022, par teals

    I am trying to debug an issue I have with a simple C++ encoder using FFMmpeg. The following code below works correctly on these other hardware acceleration systems/platforms :

    


      

    • Mac/VideoToolbox,
    • 


    • Cuda/NVEnc
    • 


    • Raspberry pi/h264_v4l2m2m.
    • 


    


    It fails on intel quick sync at avcodec_open2. I'm using Ubuntu 22.04. I built FFMpeg from source with the Intel Media SDK installed and configured. I verified that the QuickSync install works. I also have a corresponding decoder implementation that works correctly using intel quick sync. So I know everything properly installed. I am also running this on an 11th Gen Intel CPU.

    


    [hevc_qsv @ 0x564b0d34f0c0] Low power mode is unsupported (This sometimes shows up)
[hevc_qsv @ 0x563691234000] some encoding parameters are not supported by the QSV runtime. Please double check the input parameters.
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height


    


    This is the only error that I get and I haven't found any helpful resources. I tried playing around with different parameters but nothing seems to work. Any help or insight would be extremely helpful.

    


    bool VideoEncoder::create() {&#xA;    char const* outfile = filePath.c_str();&#xA;&#xA;     // open output format context&#xA;    int ret = avformat_alloc_output_context2(&amp;ofctx, nullptr, nullptr, outfile);&#xA;    if (ret &lt; 0) {&#xA;        std::cerr &lt;&lt; "fail to avformat_alloc_output_context2(" &lt;&lt; outfile &lt;&lt; "): ret=" &lt;&lt; ret;&#xA;        return false;&#xA;    }&#xA;&#xA;    // create new video stream&#xA;    const AVCodec* codec = avcodec_find_encoder_by_name(encoderName.c_str());&#xA;    vstrm = avformat_new_stream(ofctx, codec);&#xA;    if (!vstrm) {&#xA;        std::cerr &lt;&lt; "fail to avformat_new_stream";&#xA;        return false;&#xA;    }&#xA;&#xA;    // open video encoder&#xA;    cctx = avcodec_alloc_context3(codec);&#xA;    if (!vstrm) {&#xA;        std::cerr &lt;&lt; "fail to avcodec_alloc_context3";&#xA;        return false;&#xA;    }&#xA;    const AVRational dst_fps = {fps, 1};&#xA;    cctx->width = width;&#xA;    cctx->height = height;&#xA;    if(pixel_format != AV_PIX_FMT_NONE) {&#xA;        cctx->pix_fmt = pixel_format;&#xA;    }&#xA;    else {&#xA;        cctx->pix_fmt = codec->pix_fmts[0];&#xA;    }&#xA;    cctx->time_base = av_inv_q(dst_fps);&#xA;    cctx->framerate = dst_fps;&#xA;    cctx->bit_rate = bitrate * 1000000;&#xA;&#xA;&#xA;    AVDictionary* options = nullptr;&#xA;    if(gpu_id >= 0) {&#xA;        av_dict_set_int(&amp;options, "gpu", gpu_id, 0);&#xA;    }&#xA;&#xA;    &#xA;    if (ofctx->oformat->flags &amp; AVFMT_GLOBALHEADER)&#xA;        cctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;&#xA;    ret = avcodec_open2(cctx, codec, &amp;options);&#xA;    if (ret &lt; 0) {&#xA;        std::cerr &lt;&lt; "fail to avcodec_open2: ret=" &lt;&lt; ret;&#xA;        return false;&#xA;    }&#xA;    avcodec_parameters_from_context(vstrm->codecpar, cctx);&#xA;&#xA;    //For mac/quicktime we need to add hvc1 tag.&#xA;    if (encoderName.find("hevc") != std::string::npos) {&#xA;        vstrm->codecpar->codec_tag = MKTAG(&#x27;h&#x27;, &#x27;v&#x27;, &#x27;c&#x27;, &#x27;1&#x27;);&#xA;    }&#xA;&#xA;    /*&#xA;    std::cout&#xA;        &lt;&lt; "outfile: " &lt;&lt; outfile &lt;&lt; "\n"&#xA;        &lt;&lt; "format:  " &lt;&lt; ofctx->oformat->name &lt;&lt; "\n"&#xA;        &lt;&lt; "vcodec:  " &lt;&lt; codec->name &lt;&lt; "\n"&#xA;        &lt;&lt; "size:    " &lt;&lt; width &lt;&lt; &#x27;x&#x27; &lt;&lt; height &lt;&lt; "\n"&#xA;        &lt;&lt; "fps:     " &lt;&lt; av_q2d(cctx->framerate) &lt;&lt; "\n"&#xA;        &lt;&lt; "pixfmt:  " &lt;&lt; av_get_pix_fmt_name(cctx->pix_fmt) &lt;&lt; "\n"&#xA;        &lt;&lt; std::flush;*/&#xA;&#xA;    // initialize sample scaler&#xA;    swsCtx = sws_getContext(&#xA;        width, height, AV_PIX_FMT_BGR24,&#xA;        width, height, cctx->pix_fmt,&#xA;        SWS_BILINEAR, nullptr, nullptr, nullptr);&#xA;    if (!swsCtx) {&#xA;        std::cerr &lt;&lt; "fail to sws_getContext";&#xA;        return false;&#xA;    }&#xA;&#xA;    // allocate frame buffer for encoding&#xA;    frame = av_frame_alloc();&#xA;    frame->width = width;&#xA;    frame->height = height;&#xA;    frame->format = static_cast<int>(cctx->pix_fmt);&#xA;    ret = av_frame_get_buffer(frame, 32);&#xA;    if (ret &lt; 0) {&#xA;        std::cerr &lt;&lt; "fail to av_frame_get_buffer: ret=" &lt;&lt; ret;&#xA;        return false;&#xA;    }&#xA;&#xA;    // allocate packet to retrive encoded frame&#xA;    pkt = av_packet_alloc();&#xA;    // open output IO context&#xA;    ret = avio_open2(&amp;ofctx->pb, outfile, AVIO_FLAG_WRITE, nullptr, nullptr);&#xA;    if (ret &lt; 0) {&#xA;        std::cerr &lt;&lt; "fail to avio_open2: ret=" &lt;&lt; ret;&#xA;        return false;&#xA;    }&#xA;&#xA;    // write media container header (if any)&#xA;    ret = avformat_write_header(ofctx, nullptr);&#xA;    if (ret &lt; 0) {&#xA;        std::cerr &lt;&lt; "fail to avformat_write_header: ret=" &lt;&lt; ret;&#xA;        return false;&#xA;    }&#xA;&#xA;    return true;&#xA;}&#xA;</int>

    &#xA;

  • How do I timestamp an excel document using Pandas ?

    16 juillet 2015, par Andy Do

    I have a script that uses FFMPEG and CMD to cut video files based off of an excel document row by row. I would like python to add a timestamp after it is done with a row. Can you guys please help ?

    import subprocess as sp, pandas as pd

    ffmpeg = 'C:/FFMPEG/bin/ffmpeg.exe' # on Windows
    datafile = r'C:\Users\A_Do\Dropbox\1. Projects\2. Python\TM Creator\tm_creator_test1.xlsx'

    xl = pd.ExcelFile(datafile,index = False)
    df = xl.parse('Sheet1')

    def create_tm():
       row_iterator = df.iterrows()
        # take first item from row_iterator
       for i, row in row_iterator:
           infile = row['filename']
           outputfile = row['outputfilename']
           timein = row['timein']
           duration = row['duration']
           decision = row['Create TM?']
           if decision == "Y":
               sp.call(ffmpeg + " -y -i " + infile + " -map 0:0 -map 0:1 -map 0:2 -acodec copy -ss " + str(timein) + " -codec copy -t " + str(duration) + " " + outputfile,shell=True) #this works

           elif decision != decision: #this gets rid of the NaN
               break
           else:
               print "You said you didn't want to make a TM for " + str(infile)

    create_tm()

    Thanks !

    My final code :

    import subprocess as sp, pandas as pd
    # (1) new import
    from openpyxl import load_workbook
    # (2) new import
    from datetime import datetime

    ffmpeg = 'D:/FFMPEG/bin/ffmpeg.exe' # on Windows
    datafile = r'D:\Dropbox\1. Projects\2. Python\TM Creator\tm_creator_test1.xlsx'

    # (3) open the file in openpyxl first:
    book = load_workbook(datafile)

    xl = pd.ExcelFile(datafile,index = False)
    df = xl.parse('Sheet1')

    def create_tm():
       row_iterator = df.iterrows()
        # take first item from row_iterator
       for i, row in row_iterator:
           infile = row['filename']
           outputfile = row['outputfilename']
           timein = row['timein']
           duration = row['duration']
           decision = row['Create TM?']
           if decision == "Y":
               sp.call(ffmpeg + " -y -i " + infile + " -map 0:0 -map 0:1 -acodec copy -ss " + str(timein) + " -codec copy -t " + str(duration) + " " + outputfile,shell=True) #this works
               # (4) Wherever in the code you want to put the timestamp:
               df.loc[i, 'Timestamp'] = str(datetime.now())
               # (5) This saves the sheet back into the original file, without removing
               # any of the old sheets.
               writer = pd.ExcelWriter(datafile)
               writer.book = book
               writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
               df.to_excel(writer, index=False)
               writer.save()
           elif decision != decision: #this gets rid of the NaN
               break
           else:
               print "You said you didn't want to make a TM for " + str(infile)
  • ffmpeg hevc h265 4k 10 bit

    14 juillet 2017, par Ali Jose

    I want to be able to encode 4k videos in TS files having video codec as HEVC at constant bitrate 20 Mbps, dolby audio (2 channel front L & R). This is the spec sheet as provided from my client http://159.8.5.10:3001/download/4k-specs.xlsx Im using this code :

    I used this code at first to produce a sample which conforms to their spec sheet, however the playback was not smooth neither on my side nor on their side :

    ffmpeg -i input.mov -pix_fmt yuv420p10le -c:v libx265  -b:v 19.5M -minrate 19.5M -maxrate 19.5M -muxrate 20M -x265-params "level=6.2" -r 50 -s 3840x2160 -c:a ac3 -b:a 384k -minrate 384k -maxrate 384k -channel_layout 3  output.ts

    the produced sample is found in the following link : http://159.8.5.10:3001/download/two_mns_sample.rar

    The client sent me this sample, he told me it is provided by another supplier and it is approved by their end (it matches their spec sheet and plays smoothly in their broadcast software), the sample is found under the following link : http://159.8.5.10:3001/download/approved-4k.rar

    Then the client sent me another sample, they also said that it is approved by their side (matched their specs and plays smoothly in their broadcast software) found under the following link : http://159.8.5.10:3001/download/approved-4k-2.rar

    When examining well the second approved sample, I noticed that it doesnt meet the spec sheet 100% but the differences are minor (level @ 5.1 instead of 6.2 and dolby 5.1 instead of dolby Stereo... so minor differences) but as they described, it played back smoothly in their broadcast playback. So we can understand from that that they are a bit flexible.

    My 4k source file is an mov Prores 4444, 23.97 fps, 10 bit depth, 444 chroma subsampling, variable bitrate (around 950 Mbps). To find out more info about the input file, please go to this link (MediaInfo txt export) : http://159.8.5.10:3001/download/4k-original.txt

    This is a 2mns sample trimmed clip from my original file (couldnt upload the whole source file since its 800 GB !) : http://159.8.5.10:3001/download/original-2-mns.mov

    I need an ffmpeg code that can generate a sample that complies to their specification sheet and can be played SMOOTHLY in their technical department, it was mentioned they are using 4k playbox technology (maybe airbox but it was not clear, but what we can assure is that they use good instrument for broadcast, they dont go for below average instrument/software), I need to send them samples that they later check and play on their playback system and get approved.