Recherche avancée

Médias (91)

Autres articles (69)

  • 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

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Submit bugs and patches

    13 avril 2011

    Unfortunately a software is never perfect.
    If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
    If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
    You may also (...)

Sur d’autres sites (10211)

  • javacv FFMPEG decode memory leak ?

    25 mars 2015, par Liquan Nie

    I’m new to JAVACV and I am using FFMPEG to play some video file as follows
    My enviroument is windows 8 with jdk7 and javacv0.10.

               String file_path ="D:\\1.mp4";
                   
                    // regist all format and codec
                    avformat.av_register_all();
                    avcodec.avcodec_register_all();
                   
                    // open file
                    avformat.AVFormatContext avFormatCtx = avformat.avformat_alloc_context();
                    if (avformat.avformat_open_input(avFormatCtx, file_path, null, null) != 0)
                    {
                            System.out.println("cann't open file\r\n");
                            return;
                    }
                    // find stream info
                    if (avformat.avformat_find_stream_info(avFormatCtx, (AVDictionary)null) < 0)
                    {
                            System.out.println("can't find stream info\r\n");
                            return;
                    }

                    int videoIndex = -1;
                    for(int i=0; i< avFormatCtx.nb_streams();i++)
                    {
                            if(avFormatCtx.streams(i).codec().codec_type() == avutil.AVMEDIA_TYPE_VIDEO)
                            {
                                    videoIndex = i;
                            }
                    }
                    // determ codec
                    avcodec.AVCodecContext avCodecCtx = avFormatCtx.streams(videoIndex).codec();
                    avcodec.AVCodec codec = avcodec.avcodec_find_decoder(avCodecCtx.codec_id());
                    if (codec == null)
                    {
                            System.out.println("codec not found");
                            return;
                    }
                    if(avcodec.avcodec_open2(avCodecCtx, codec, (AVDictionary)null) < 0)
                    {
                            System.out.println("cann't open avcodec\r\n");
                    }
                    avutil.AVFrame frame    = avcodec.avcodec_alloc_frame();
                    avutil.AVFrame frameRGB = avcodec.avcodec_alloc_frame();
                    int numByte = avcodec.avpicture_get_size(avutil.AV_PIX_FMT_RGB24, avCodecCtx.width(), avCodecCtx.height());
                    Pointer outBuffer = avutil.av_malloc(numByte);
                   
                    avcodec.avpicture_fill(new AVPicture(frameRGB), outBuffer.asByteBuffer(), avutil.AV_PIX_FMT_RGB24, avCodecCtx.width(), avCodecCtx.height());
                    avformat.av_dump_format(avFormatCtx, 0, file_path, 0);
                    System.out.println(avFormatCtx.duration());
                    SwsContext img_convert_ctx = swscale.sws_getContext(avCodecCtx.width(), avCodecCtx.height(), avCodecCtx.pix_fmt(), avCodecCtx.width(), avCodecCtx.height(), avutil.AV_PIX_FMT_RGB24, swscale.SWS_BICUBIC, null, null, (double[])null);

                    AVPacket pkt = new AVPacket();
                    int y_size = avCodecCtx.width()*avCodecCtx.height();
                    avcodec.av_new_packet(pkt, y_size);
                    opencv_highgui.cvNamedWindow(WINDOW_NAME);
                   
                    IplImage showImage = opencv_core.cvCreateImage(opencv_core.cvSize(avCodecCtx.width(), avCodecCtx.height()), opencv_core.IPL_DEPTH_8U, 3);
                    // read frames loop
                    int frameNumbers = avformat.av_read_frame(avFormatCtx, pkt);
                System.out.println("frame number is "+frameNumbers);
               
                while (avformat.av_read_frame(avFormatCtx, pkt) >= 0)
                    {
                        //System.out.println(pkt.asByteBuffer());
                            if (pkt.stream_index() == videoIndex)
                            {
                                    IntPointer ip = new IntPointer();
                                    int ret = avcodec.avcodec_decode_video2(avCodecCtx, frame, ip, pkt);
                                    if (ret < 0)
                                    {
                                            System.out.println("codec error\r\n");
                                            return;
                                    }
                                   
                                    if (ip.get()!= 0)
                                    {
                                            swscale.sws_scale(img_convert_ctx, frame.data(), frame.linesize(), 0, avCodecCtx.height(), frameRGB.data(), frameRGB.linesize());
                                            showImage.imageData(frameRGB.data(0));
                                           
                                            showImage.widthStep(frameRGB.linesize().get(0));
                                            opencv_highgui.cvShowImage(WINDOW_NAME, showImage);
                                            opencv_highgui.cvWaitKey(25);
                                    }
                            }
                    }
                   
                    showImage.release();
                    opencv_highgui.cvDestroyWindow(WINDOW_NAME);
                    avutil.av_free(frameRGB);
                    avcodec.avcodec_close(avCodecCtx);
                    avformat.avformat_close_input(avFormatCtx);

    but i run into get this error

    # A fatal error has been detected by the Java Runtime Environment:
    #
    #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000767c35ed, pid=11884, tid=3960
    #
    # JRE version: 7.0_13-b20
    # Java VM: Java HotSpot(TM) 64-Bit Server VM (23.7-b01 mixed mode windows-amd64 compressed oops)
    # Problematic frame:
    # C  [avcodec-56.dll+0x4835ed]  avcodec_decode_video2+0xbd
    #
    # Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
    #
    # An error report file with more information is saved as:
    # E:\code\android\TestJAVACV\hs_err_pid11884.log
    #
    # If you would like to submit a bug report, please visit:
    #   http://bugreport.sun.com/bugreport/crash.jsp
    # The crash happened outside the Java Virtual Machine in native code.
    # See problematic frame for where to report the bug.
    #
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'D:\1.mp4':
     Metadata:
       major_brand     : isom
       minor_version   : 512
       compatible_brands: isomiso2avc1mp41
       creation_time   : 1970-01-01 00:00:00
       encoder         : Lavf53.29.100
     Duration: 00:08:30.27, start: 0.000000, bitrate: 160 kb/s
       Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 960x540 [SAR 1:1 DAR 16:9], 28 kb/s, 15 fps, 15 tbr, 15 tbn, 30 tbc (default)
       Metadata:
         creation_time   : 1970-01-01 00:00:00
         handler_name    : VideoHandler
       Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
       Metadata:
         creation_time   : 1970-01-01 00:00:00
         handler_name    : SoundHandler

    and in the log file i found that the enden space heap in jvm has been used 98%. but I don’t know where is the issue, since the document of ffmpeg is not that enough, I feel difficult to know more about how to use it well ,any suggestions ??

    Heap
    PSYoungGen      total 23872K, used 20250K [0x00000000e5600000, 0x00000000e70a0000, 0x0000000100000000)
     eden space 20480K, 98% used [0x00000000e5600000,0x00000000e69c69f8,0x00000000e6a00000)
  • QSV on Debian 11 can`t compile for right work [closed]

    8 avril 2022, par woodsleaf

    Have I tried to solve this problem, but all that happened was to output a line in ffmpeg about the presence of QSV(qsync), but not to make it work in "encode" mode.
Environment:Debian 11(bullseye), Cpu i5-3570k (Intel® HD Graphics 4000). Hardware codec support Decode/Encode : H264, AVC.

    


    Hardware Video Acceleration, ffmpeg src, HandBrake.

    


  • ffmpeg : handle errors in print_sdp()

    4 décembre 2021, par Anton Khirnov
    ffmpeg : handle errors in print_sdp()
    

    Do not continue as if nothing happened.

    • [DH] fftools/ffmpeg.c