Recherche avancée

Médias (0)

Mot : - Tags -/signalement

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

Autres articles (78)

  • Organiser par catégorie

    17 mai 2013, par

    Dans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
    Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
    Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...)

  • Récupération d’informations sur le site maître à l’installation d’une instance

    26 novembre 2010, par

    Utilité
    Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
    Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...)

  • Demande de création d’un canal

    12 mars 2010, par

    En fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
    Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...)

Sur d’autres sites (4819)

  • Everytime I run my code ffmpeg responds with this instead of doing its function. How do I fix ?

    25 juillet 2023, par Oreo F
    Output from ffmpeg/avlib:

ffmpeg version 2023-07-19-git-efa6cec759-full_build-www.gyan.dev Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-libsnappy --enable-zlib --enable-librist --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libaribb24 --enable-libaribcaption --enable-libdav1d --enable-libdavs2 --enable-libuavs3d --enable-libzvbi --enable-librav1e --enable-libsvtav1 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libaom --enable-libjxl --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-liblensfun --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libvpl --enable-libshaderc --enable-vulkan --enable-libplacebo --enable-opencl --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libcodec2 --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
  libavutil      58. 14.100 / 58. 14.100
  libavcodec     60. 22.100 / 60. 22.100
  libavformat    60. 10.100 / 60. 10.100
  libavdevice    60.  2.101 / 60.  2.101
  libavfilter     9.  8.102 /  9.  8.102
  libswscale      7.  3.100 /  7.  3.100
  libswresample   4. 11.100 /  4. 11.100
  libpostproc    57.  2.100 / 57.  2.100


    


    Everytime I run the code it does this.

    


    code :

    


    import praw
import requests
import cv2
import os
from pydub import AudioSegment

def download_video(url, filename):
    response = requests.get(url)
    with open(filename, 'wb') as f:
        f.write(response.content)

def combine_videos(video_urls, output_filename):
    video_clips = []
    audio_clips = []
    for i, url in enumerate(video_urls):
        temp_filename = f'temp_video_{i}.mp4'
        download_video(url, temp_filename)
        video_clip = cv2.VideoCapture(temp_filename)
        audio_clip = AudioSegment.from_file(temp_filename, format="mp4")
        video_clips.append(video_clip)
        audio_clips.append(audio_clip)
    
    if not video_clips:
        print("No video clips to combine.")
        return

    frame_width = int(video_clips[0].get(cv2.CAP_PROP_FRAME_WIDTH))
    frame_height = int(video_clips[0].get(cv2.CAP_PROP_FRAME_HEIGHT))
    fps = int(video_clips[0].get(cv2.CAP_PROP_FPS))

    fourcc = cv2.VideoWriter_fourcc(*'mp4v')
    output_clip = cv2.VideoWriter(output_filename, fourcc, fps, (frame_width, frame_height))

    for i, video_clip in enumerate(video_clips):
        while True:
            ret, frame = video_clip.read()
            if not ret:
                break
            output_clip.write(frame)
    
    for video_clip in video_clips:
        video_clip.release()
    
    output_clip.release()

    # Combining audio using pydub
    combined_audio = sum(audio_clips)
    combined_audio.export("combined_audio.mp3", format="mp3")

    # Merging audio with video using ffmpeg
    os.system(f'ffmpeg -i {output_filename} -i combined_audio.mp3 -c:v copy -c:a aac -strict experimental -map 0:v:0 -map 1:a:0 final_output.mp4')

    # Cleaning up temporary files
    os.remove("combined_audio.mp3")

def main():
    reddit = praw.Reddit(
       client_id='XXX',
        client_secret='XXX',
        user_agent='Reddit Video Downloader'
    )
    
    subreddit_name = input("Enter the name of the subreddit: ")
    limit = int(input("Enter the number of videos to download: "))
    
    subreddit = reddit.subreddit(subreddit_name)
    submissions = subreddit.hot(limit=limit)
    
    video_urls = [submission.url for submission in submissions if submission.media and 'reddit_video' in submission.media]
    
    if video_urls:
        output_filename = input("Enter the output filename (e.g., output.mp4): ")
        combine_videos(video_urls, output_filename)
        print("Videos combined successfully!")
    else:
        print("No Reddit videos found in the subreddit.")

if __name__ == "__main__":
    main()


    


    Anyone got any idea why this happens ?

    


    I'm making a script that scrapes videos from a specific subreddit.

    


    Also if it helps the temp video file is corrupted when it gets made.

    


    I've put this into chatGPT as well and brought an expert friend and he hasn't been able to help me.

    


  • Memory leak while opening encoders in ffmpeg

    22 janvier 2014, par praks411

    I'm getting memory leaks in avcodec_find_encoder. Although I'm cleaning the resources properly
    still I'm not able to get rid of the leak. By successive commenting the code I found that memory leaks happen only after the call of avcodec_find_encoder(). I've tried my code with different video files and I found that memory leaks blocks are always same. Also if I open only audio or video then I get just one memory leaks block.
    Below is the part of Init and Clean-up code from the application.
    Note that this is just part of code which contains initialization and resource release.

    AVFormatContext *m_informat;
    AVFormatContext *m_outformat;
    AVStream *m_in_vid_strm, *m_out_vid_strm;
    AVStream *m_in_aud_strm, *m_out_aud_strm;


    int VideoClipper::Init(const wxString& filename)
    {
       int ret = 0;
       char errbuf[64];

       av_register_all();
       if ((ret = avformat_open_input( &m_informat, filename.mb_str(), 0, 0)) != 0 )
       {
           av_strerror(ret,errbuf,sizeof(errbuf));
           PRINT_VAL("Not able to Open file;; ", errbuf)
           ret = -1;
           return ret;
       }
       else
       {
           PRINT_MSG("Opened File ")
       }

       if ((ret = avformat_find_stream_info(m_informat, 0))< 0 )
       {

           av_strerror(ret,errbuf,sizeof(errbuf));
           PRINT_VAL("Not Able to find stream info:: ", errbuf)
           ret = -1;
           return ret;
       }
       else
       {
           PRINT_MSG("Got stream Info ")
       }

       for(unsigned int i = 0; inb_streams; i++)
       {
           if(m_informat->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
           {

               PRINT_MSG("Found Video Stream ")
               m_in_vid_strm_idx = i;
               m_in_vid_strm = m_informat->streams[i];
           }

           if(m_informat->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO)
           {
               PRINT_MSG("Found Audio Stream ")
               m_in_aud_strm_idx = i;
               m_in_aud_strm = m_informat->streams[i];
           }
       }

       AVOutputFormat *outfmt = NULL;
       std::string outfile = std::string(filename) + "clip_out.avi";
       outfmt = av_guess_format(NULL,outfile.c_str(),NULL);

       if(outfmt == NULL)
       {
           ret = -1;
           return ret;
       }
       else
       {
           m_outformat = avformat_alloc_context();
           if(m_outformat)
           {
               m_outformat->oformat = outfmt;
               _snprintf(m_outformat->filename, sizeof(m_outformat->filename), "%s", outfile.c_str());    
           }
           else
           {
               ret = -1;
               return ret;
           }
       }

       AVCodec *out_vid_codec,*out_aud_codec;
       out_vid_codec = out_aud_codec = NULL;

       if(outfmt->video_codec != AV_CODEC_ID_NONE && m_in_vid_strm != NULL)
       {
           out_vid_codec = avcodec_find_encoder(outfmt->video_codec);
           if(NULL == out_vid_codec)
           {
               PRINT_MSG("Could Not Find Vid Encoder")
               ret = -1;
               return ret;
           }
           else
           {
               PRINT_MSG("Found Out Vid Encoder ")
               m_out_vid_strm = avformat_new_stream(m_outformat, out_vid_codec);
               if(NULL == m_out_vid_strm)
               {
                    PRINT_MSG("Failed to Allocate Output Vid Strm ")
                    ret = -1;
                    return ret;
               }
               else
               {
                    PRINT_MSG("Allocated Video Stream ")
                    if(avcodec_copy_context(m_out_vid_strm->codec, m_informat->streams[m_in_vid_strm_idx]->codec) != 0)
                    {
                       PRINT_MSG("Failed to Copy Context ")
                       ret = -1;
                       return ret;
                    }
                  }
               }
         }

       if(outfmt->audio_codec != AV_CODEC_ID_NONE && m_in_aud_strm != NULL)
       {
           out_aud_codec = avcodec_find_encoder(outfmt->audio_codec);
           if(NULL == out_aud_codec)
           {
               PRINT_MSG("Could Not Find Out Aud Encoder ")
               ret = -1;
               return ret;
           }
           else
           {
               PRINT_MSG("Found Out Aud Encoder ")
               m_out_aud_strm = avformat_new_stream(m_outformat, out_aud_codec);
               if(NULL == m_out_aud_strm)
               {
                   PRINT_MSG("Failed to Allocate Out Vid Strm ")
                   ret = -1;
                   return ret;
               }
               else
               {
                   if(avcodec_copy_context(m_out_aud_strm->codec, m_informat->streams[m_in_aud_strm_idx]->codec) != 0)
                   {
                       PRINT_MSG("Failed to Copy Context ")
                       ret = -1;
                       return ret;
                   }
               }
            }
         }

         if (!(outfmt->flags & AVFMT_NOFILE))
         {
           if (avio_open2(&m_outformat->pb, outfile.c_str(), AVIO_FLAG_WRITE,NULL, NULL) < 0)
           {
                   PRINT_VAL("Could Not Open File ", outfile)
                   ret = -1;
                   return ret;
           }
         }
           /* Write the stream header, if any. */
         if (avformat_write_header(m_outformat, NULL) < 0)
         {
               PRINT_VAL("Error Occurred While Writing Header ", outfile)
               ret = -1;
               return ret;
         }
         else
         {
               PRINT_MSG("Written Output header ")
               m_init_done = true;
         }

       return ret;
    }

    Here is the Clean-up part

    void VideoClipper::ReleaseResource(void)
    {
       if(m_in_aud_strm && m_in_aud_strm->codec)
       {
           avcodec_close(m_in_aud_strm->codec);
           PRINT_MSG("Closed Input Audio Codec ")
       }

       if(m_in_vid_strm && m_in_vid_strm->codec)
       {
           avcodec_close(m_in_vid_strm->codec);
           PRINT_MSG("Closed Input Video Codec ")
       }

       if(m_informat)
       {
          avformat_close_input(&m_informat);
           PRINT_MSG("Freed Input Format Contex ")
       }

       if(m_out_aud_strm && m_out_aud_strm->codec)
       {
           avcodec_close(m_out_aud_strm->codec);
           PRINT_MSG("Closed Output Audio Codec ")
       }

       if(m_out_vid_strm && m_out_vid_strm->codec)
       {
           avcodec_close(m_out_vid_strm->codec);
           PRINT_MSG("Closed Output Audio Codec ")
       }

       if(m_outformat)
       {
           avformat_close_input(&m_outformat);
           m_outformat = NULL;
           PRINT_MSG("Closed Output Format ")
       }

    }

    Memory Leaks message

    Detected memory leaks!
    Dumping objects ->
    {13691} normal block at 0x01046A60, 4479 bytes long.
    Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
    {13685} normal block at 0x01043FD0, 10831 bytes long.
    Data: <         ?      > CD CD CD CD CD CD CD CD D0 3F 04 01 ED ED ED ED
    Object dump complete.

    I'm using latest version of ffmpeg on Visual Studio 2012.
    Please suggest where I'm missing.

    Thanks
    Pradeep

  • Lossless avi encoding on linux

    31 août 2012, par JohnSavage

    I am trying to write video using opencv. It is important for me to do this precisely - so it has to be a lossless codec. I am working with OpenCV 2.4.1 on Ubuntu 12.04

    Previously, I was using the fourcc code 0. This gave me the exact result I wanted, and I was able to recover the images perfectly.

    I am not sure what happened, but as of a recent update (around Jul 20th 2012), something went wrong and I am no longer able to write files with this fourcc code. I really don't remember what it was, but it could have come from doing an update, removing some software from my software center, and some other things I did during general cleaning...

    When I check an older file with mediainfo (http://www.fourcc.org/identifier/) I see the following result :

    Complete name                            : oldsample.avi
    Format                                   : AVI
    Format/Info                              : Audio Video Interleave
    Format profile                           : OpenDML
    File size                                : 1.07 GiB
    Duration                                 : 41s 467ms
    Overall bit rate                         : 221 Mbps
    Writing application                      : Lavf53.5.0
    Video
    ID                                       : 0
    Format                                   : RGB
    Codec ID                                 : 0x00000000
    Codec ID/Info                            : Basic Windows bitmap format. 1, 4 and 8 bpp     versions are palettised. 16, 24 and 32bpp contain raw RGB samples
    Duration                                 : 41s 467ms
    Bit rate                                 : 221 Mbps
    Width                                    : 640 pixels
    Height                                   : 4294966 816 pixels
    Display aspect ratio                     : 0.000
    Frame rate                               : 30.000 fps
    Bit depth                                : 8 bits
    Stream size                              : 1.07 GiB (100%)

    Now, I see that when I write using the 0 fourcc codec, the program actually defaults to the i420 codec. Here is the output from one of the files I try to write now :

    Complete name                            : newsample.avi
    Format                                   : AVI
    Format/Info                              : Audio Video Interleave
    File size                                : 73.0 MiB
    Duration                                 : 5s 533ms
    Overall bit rate                         : 111 Mbps
    Writing application                      : Lavf54.6.100
    Video
    ID                                       : 0
    Format                                   : YUV
    Codec ID                                 : I420
    Codec ID/Info                            : 8 bit Y plane followed by 8 bit 2x2 subsampled U and V planes.
    Duration                                 : 5s 533ms
    Bit rate                                 : 111 Mbps
    Width                                    : 640 pixels
    Height                                   : 480 pixels
    Display aspect ratio                     : 4:3
    Frame rate                               : 30.000 fps
    Compression mode                         : Lossless
    Bits/(Pixel*Frame)                       : 12.000
    Stream size                              : 72.9 MiB (100%)

    This format, and other formats I try to use (like huffyuv HFYU), do not work for me because I end up with effects like this http://imgur.com/a/0OC4y - you see the bright artifacts coming in due to what I assume is either lossy compression or chroma subsampling in the case of HFYU which is supposed to be lossless. What you are looking at is the red channel from one of my videos. The perceptual effect is negligible when you look at all 3 channels simultaneously but it is essential that I reconstruct the images exactly.

    Furthermore, while I am able to play my old files in media players like vlc, I suddenly find them to be completely incompatible with opencv. When I try to open the older files with a videocapture, the open step works fine, but trying to do a read operation results in a segfault. Furthermore, When I try to write with either :

    CV_FOURCC(0,0,0,0)
    0

    Opencv defaults to I420 for some reason.

    Next, I tried using some alternate codecs. 'DIB ' seems like something that should work for me, and on the opencv website (http://opencv.willowgarage.com/wiki/VideoCodecs) it is listed as a 'recommended' codec. However, trying to use this results in the following message :

    OpenCV-2.4.1/modules/highgui/src/cap_gstreamer.cpp:483: error: (-210) Gstreamer Opencv backend doesn't support this codec acutally. in function CvVideoWriter_GStreamer::open

    Aborted (core dumped)

    I checked the opencv source for this codec, and stumbled across the following :

    cd OpenCV-2.4.1/modules
    grep -i -r "CV_FOURCC" ./*
    ...
    ./highgui/src/cap_qt.cpp:    /*if( fourcc == CV_FOURCC( 'D', 'I', 'B', ' ' ))
    ./highgui/include/opencv2/highgui/highgui_c.h:#define CV_FOURCC_DEFAULT CV_FOURCC('I', 'Y', 'U', 'V') /* Use default codec for specified filename (Linux only) */

    I tried installing qt4 and reconfiguring with the WITH_QT flag, but that did not change anything. I also tried uncommenting that part of the code and reinstalling opencv, but that also did not work.

    My ultimate goal is for any way to efficiently store and retrieve a video stream with 16 bits for every pixel (like 32float would work fine, and then it wouldn't need to be perfect). Right now I am unpacking the 16 bits into the red and green channels, which is why I need it to be perfect - since an error of 1 in the red channel is multiplied by 256 in the final result. I am not having success with any of the fourcc codes available to me.