Recherche avancée

Médias (91)

Autres articles (70)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

  • 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

Sur d’autres sites (11116)

  • x264 configure linking and building problems

    16 janvier 2014, par Pie

    I am trying to build x264 from source on Ubuntu 32bit in order to convert a sequence of jpg or png images into mp4 video : x264 site, sample images

    The downloaded binaries is able to convert the sequence into an mkv video (or few other formats) when I run this command :

    ./x264dist ~/Dev/x264emp/img/FLYOVER%4d.JPG -o abc.mkv

    x264dist is the renamed name of the binary I download from the site.

    However, when I grab the source and compile with simple configure :

    $ ./configure --enable-shared --enable-static --enable-pic

    platform:      X86
    system:        LINUX
    cli:           yes
    libx264:       internal
    shared:        yes
    static:        yes
    asm:           yes
    interlaced:    yes
    avs:           avxsynth
    lavf:          no
    ffms:          no
    mp4:           no
    gpl:           yes
    thread:        posix
    opencl:        yes
    filters:       crop select_every
    debug:         no
    gprof:         no
    strip:         no
    PIC:           yes
    bit depth:     8
    chroma format: all

    then $ make. Then I use the binaries to run the exactly same command as above but there is this error :

    ./x264 ~/Dev/x264emp/img/FLYOVER%4d.JPG -o abc.mkv
    raw [error]: raw input requires a resolution.
    x264 [error]: could not open input file `/home/tmd/Dev/x264emp/img/FLYOVER%4d.JPG' via any method!

    It seems like it can’t read any input at all. But at least I am still able to run --help on that binaries.

    Then I realized that the downloaded binaries is 3.5Mb while my custom compilation results in 1.5Mb binaries.

    So I just want to know what are the build configurations used by the official build, and/or is there any dependency I am missing that leads to this problem.

    The reason I am trying to build myself because I want to port the x264 lib into Javascript using Emscripten. There has been a solution using FFmpeg but it seems like I don’t need the whole video processing library but only a simple H264 codec. So I need to solve the configure/compile/linking problem to port it rightly.

    Possibly similar How to configure X264 build before running make on OS X

  • FFmpeg realtime volume changing with C API

    9 janvier 2019, par Tank2006

    My environment is FFmpeg 4.1(Prebuild package from an official site) on Windows 10/Visual Studio 2017.

    I want to change an audio volume as realtime according to a volume button operation from media player apps.

    Think simply, it will update if AVFilter parameters changes, but it seems doesn’t work.

    const char src[] = "C:\\sample.mp3";

    AVFilterGraph *graph = NULL;
    AVFilterContext *ctx_src, *ctx_sink;
    AVFilter *ctx_vol;

    int main()
    {
       int res;
       AVPacket *packet = av_packet_alloc();
       AVFrame *frame = av_frame_alloc();
       AVFrame *fframe = av_frame_alloc();

       AVCodec *codec = avcodec_find_decoder(AV_CODEC_ID_MP3);
       AVCodecParser *parser = av_parser_init(codec->id);

       AVCodecContext *cc = avcodec_alloc_context3(codec);
       avcodec_open2(cc, codec, NULL);


       FILE *fp; uint8_t buffer[1024]; int filterinit = 0;
       fopen_s(&fp, src, "rb");
       while (feof(fp) == 0) {
           int read = fread(buffer, 1, 1024, fp);

           res = av_parser_parse2(parser, cc, &packet->data, &packet->size,
               buffer, read, AV_NOPTS_VALUE, AV_NOPTS_VALUE, 0);
           if (packet->size) {
               res = avcodec_send_packet(cc, packet);

               while (res >= 0) {
                   res = avcodec_receive_frame(cc, frame);

                   if (res == AVERROR(EAGAIN) || res == AVERROR_EOF) {
                       break;
                   } else if (res < 0) {
                       fprintf(stderr, "Error during decoding\n");
                       exit(1);
                   }

                   if (filterinit == 0) {
                       // Create a volume filter, links and graph from AVCodecContext's parameter
                       if(init_filters(cc)) filterinit = 1;
                   }

                   if (filterinit == 1) {
                       res = av_buffersrc_add_frame(ctx_src, frame);
                       if(av_buffersink_get_frame(ctx_sink, frame) >= 0) {

                           // Change the volume realtime
                           av_opt_set(ctx_vol, "volume", AV_STRINGIFY(1.2), AV_OPT_SEARCH_CHILDREN);


                           int datasize = av_get_bytes_per_sample(cc->sample_fmt);
                           for (int i = 0; i < frame->nb_samples; i++) {
                               for (int ch = 0; ch < cc->channels; ch++) {
                                   //fwrite(frame->data[ch] + data_size * i, 1, data_size, outfile);
                               }
                           }
                       }
                   }
               }
           }
       }

       fclose(fp);

       avcodec_free_context(&cc);
       av_parser_close(parser);
       av_frame_free(&frame);
       av_frame_free(&fframe);
       av_packet_free(&packet);

       avfilter_graph_free(&graph);

       return 0;
    }

    Can I change the filter value in realtime with FFmpeg’s C API or I need to create a new filter link each time when it requires to update ?

  • ffmpeg trim mp3 - determine precisely the start and end times of section to be trimmed

    4 février 2019, par Ahmed Khalil

    I have a long mp3 track of an audio book (more than 9 hours long) that I would like to trim using ffmpeg.

    The sample code below is used to trim an mp3 section by providing the start and end times. However, when I determine the start and end times, then checking the output file, it’s not as precisely as I want, sometimes several minutes ahead/before the desired point.

    import subprocess
    file = r'audio book.mp3'
    track_name = "trimmed section"
    output = r'D:\{0}'.format(track_name)
    start = '01:26:04'
    end = '01:33:17'

    d = subprocess.getoutput('ffmpeg -i "{0}" -ss {1} -to {2} -c copy {3}.mp3"'
                        .format(file, start, end, output))

    print(d)

    Is there a way to determine with accuracy the real start and end time of an mp3 audio track, to be given afterwards as inputs to the code...to trim the desired sections all at once, without the need to adjust/fine-tune the start and end time manually ??