Recherche avancée

Médias (1)

Mot : - Tags -/sintel

Autres articles (80)

  • 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 (...)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

Sur d’autres sites (13026)

  • Dealing with problems in FLAC audio files with ffmpeg

    15 janvier 2020, par Seamus

    I have gotten a set of FLAC (audio) files from a friend. I copied them to my Sonos music library, and got set to enjoy a nice album. Unfortunately, Sonos would not play the files. As a result I have been getting to know ffmpeg.

    Sonos’ complaint with the FLAC files was that it was "encoded at an unsupported sample rate". With rolling eyes and shaking head, I note that the free VLC media player happily plays these files, but the product I’ve paid for (Sonos) - does not. But I digress...

    ffprobe revealed that the FLAC files contain both an Audio channel and a Video channel :

    $ ffprobe -hide_banner  -show_streams "/path/to/Myaudio.flac"


       Duration: 00:02:23.17, start: 0.000000, bitrate: 6176 kb/s  
       Stream #0:0: Audio: flac, 176400 Hz, stereo, s32 (24 bit)  
       Stream #0:1: Video: mjpeg (Progressive), yuvj444p(pc, bt470bg/unknown/unknown), 450x446 [SAR 72:72 DAR 225:223], 90k tbr, 90k tbn, 90k tbc (attached pic)  
       Metadata:  
         comment         : Cover (front)  

    Cool ! I guess this is how some audio players are able to display the ’album artwork’ when they play a song ? Note also that the Audio stream is reported at 176400 Hz ! Apparently I’m out of touch ; I thought that 44.1khz sampling rate effectively removed all of the ’sampling artifacts’ we could hear. Anyway, I learned that Sonos would support a max of 48kHz sampling rate, and this (the 176.4kHz rate) is what Sonos was unhappy about. I used ffmpeg to ’dumb it down’ for them :

    $ ffmpeg -i "/path/to/Myaudio.flac" -sample_fmt s32 -ar 48000 "/path/to/Myaudio48K.flac"

    This seemed to work - at least I got a FLAC file that Sonos would play. However, I also got what looks like a warning of some sort :

    [swscaler @ 0x108e0d000] deprecated pixel format used, make sure you did set range correctly
    [flac @ 0x7feefd812a00] Frame rate very high for a muxer not efficiently supporting it.
    Please consider specifying a lower framerate, a different muxer or -vsync 2

    A bit more research turned up this answer which I don’t quite understand, and then in a comment says, "not to worry" - at least wrt the swscaler part of the warning.

    And that (finally) brings me to my questions :

    1.a. What framerate, muxer & other specifications make a graphic compatible with a majority of programs that use the graphic ?

    1.b. How should I use ffmpeg to modify the Video channel to set these specifications (ref. Q 1.a.) ?

    2.a. How do I remove the Video channel from the .flac audio file ?

    2.b. How do I add a Video channel into a .flac file ?

    EDIT :

    I asked the above (4) questions after failing to accomplish a ’direct’ conversion (a single ffmpeg command) from FLAC at 176.4 kHz to ALAC (.m4a) at 48 kHz (max supported by Sonos). I reasoned that an ’incremental’ approach through a series of conversions might get me there. With the advantage of hindsight, I now see I should have posted my original failed direct conversion incantation... we live and learn.

    That said, the accepted answer below meets my final objective to convert a FLAC file encoded at 176.4kHz to an ALAC (.m4a) at 48kHz, and preserve the cover art/video channel.

  • FFMPEG on ubuntu wont start. Process is just killed [on hold]

    8 novembre 2018, par AK47

    I am trying to run a command on ffmpeg. When I run on my local computer it works fine but when running on my ubuntu server it won’t start. It just keeps giving an error saying the process is killed when it trys to start. Is this something related to memory or a different issue ?

    Killed   14 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A dup=2 drop=0 speed=   0x

    Any help would be greatly appreciated

    Below are logs that are thrown.

    root@kickpush:/var/www/kick-push.co.uk/public_html/allblacks# ffmpeg -loop 1 -i q.png -r 30 -t 10 -i a.png -r 30 -t 5 image2.mp4
    ffmpeg version 3.3.3 Copyright (c) 2000-2017 the FFmpeg developers
     built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
     configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --mandir=/usr/share/man --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libfreetype --enable-gnutls --disable-ffserver--enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libtheora --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvidstab --enable-libwavpack --enable-nvenc --enable-libzimg
     libavutil      55. 58.100 / 55. 58.100
     libavcodec     57. 89.100 / 57. 89.100
     libavformat    57. 71.100 / 57. 71.100
     libavdevice    57.  6.100 / 57.  6.100
     libavfilter     6. 82.100 /  6. 82.100
     libavresample   3.  5.  0 /  3.  5.  0
     libswscale      4.  6.100 /  4.  6.100
     libswresample   2.  7.100 /  2.  7.100
     libpostproc    54.  5.100 / 54.  5.100
    Input #0, png_pipe, from 'q.png':
     Duration: N/A, bitrate: N/A
       Stream #0:0: Video: png, rgba(pc), 1080x1920, 25 fps, 25 tbr, 25 tbn, 25 tbc
    Input #1, png_pipe, from 'a.png':
     Duration: N/A, bitrate: N/A
       Stream #1:0: Video: png, rgba(pc), 1080x1920, 25 tbr, 25 tbn, 25 tbc
    Stream mapping:
     Stream #0:0 -> #0:0 (png (native) -> h264 (libx264))
    Press [q] to stop, [?] for help
    No pixel format specified, yuv444p for H.264 encoding chosen.
    Use -pix_fmt yuv420p for compatibility with outdated media players.
    [libx264 @ 0x31a4a40] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2
    [libx264 @ 0x31a4a40] profile High 4:4:4 Predictive, level 4.0, 4:4:4 8-bit
    [libx264 @ 0x31a4a40] 264 - core 148 r2643 5c65704 - H.264/MPEG-4 AVC codec - Copyleft 2003-2015 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=4 threads=1 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
    Output #0, mp4, to 'image2.mp4':
     Metadata:
       encoder         : Lavf57.71.100
       Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv444p, 1080x1920, q=-1--1, 30 fps, 15360 tbn, 30 tbc
       Metadata:
         encoder         : Lavc57.89.100 libx264
       Side data:
         cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    Killed   14 fps=0.0 q=0.0 size=       0kB time=00:00:00.00 bitrate=N/A dup=2 drop=0 speed=   0x
  • What's wrong with my use of timestamps/timebases for frame seeking/reading using libav (ffmpeg) ?

    17 septembre 2013, par mtree

    So I want to grab a frame from a video at a specific time using libav for the use as a thumbnail.

    What I'm using is the following code. It compiles and works fine (in regards to retrieving a picture at all), yet I'm having a hard time getting it to retrieve the right picture.

    I simply can't get my head around the all but clear logic behind libav's apparent use of multiple time-bases per video. Specifically figuring out which functions expect/return which type of time-base.

    The docs were of basically no help whatsoever, unfortunately. SO to the rescue ?

    #define ABORT(x) do {fprintf(stderr, x); exit(1);} while(0)

    av_register_all();

    AVFormatContext *format_context = ...;
    AVCodec *codec = ...;
    AVStream *stream = ...;
    AVCodecContext *codec_context = ...;
    int stream_index = ...;

    // open codec_context, etc.

    AVRational stream_time_base = stream->time_base;
    AVRational codec_time_base = codec_context->time_base;

    printf("stream_time_base: %d / %d = %.5f\n", stream_time_base.num, stream_time_base.den, av_q2d(stream_time_base));
    printf("codec_time_base: %d / %d = %.5f\n\n", codec_time_base.num, codec_time_base.den, av_q2d(codec_time_base));

    AVFrame *frame = avcodec_alloc_frame();

    printf("duration: %lld @ %d/sec (%.2f sec)\n", format_context->duration, AV_TIME_BASE, (double)format_context->duration / AV_TIME_BASE);
    printf("duration: %lld @ %d/sec (stream time base)\n\n", format_context->duration / AV_TIME_BASE * stream_time_base.den, stream_time_base.den);
    printf("duration: %lld @ %d/sec (codec time base)\n", format_context->duration / AV_TIME_BASE * codec_time_base.den, codec_time_base.den);

    double request_time = 10.0; // 10 seconds. Video's total duration is ~20sec
    int64_t request_timestamp = request_time / av_q2d(stream_time_base);
    printf("requested: %.2f (sec)\t-> %2lld (pts)\n", request_time, request_timestamp);

    av_seek_frame(format_context, stream_index, request_timestamp, 0);

    AVPacket packet;
    int frame_finished;
    do {
       if (av_read_frame(format_context, &packet) < 0) {
           break;
       } else if (packet.stream_index != stream_index) {
           av_free_packet(&packet);
           continue;
       }
       avcodec_decode_video2(codec_context, frame, &frame_finished, &packet);
    } while (!frame_finished);

    // do something with frame

    int64_t received_timestamp = frame->pkt_pts;
    double received_time = received_timestamp * av_q2d(stream_time_base);
    printf("received:  %.2f (sec)\t-> %2lld (pts)\n\n", received_time, received_timestamp);

    Running this with a test movie file I get this output :

       stream_time_base: 1 / 30000 = 0.00003
       codec_time_base: 50 / 2997 = 0.01668

       duration: 20062041 @ 1000000/sec (20.06 sec)
       duration: 600000 @ 30000/sec (stream time base)
       duration: 59940 @ 2997/sec (codec time base)

       requested: 10.00 (sec)  -> 300000 (pts)
       received:  0.07 (sec)   -> 2002 (pts)

    The times don't match. What's going on here ? What am I doing wrong ?


    While searching for clues I stumbled upon this this statement from the libav-users mailing list…

    [...] packet PTS/DTS are in units of the format context's time_base,
    where the AVFrame->pts value is in units of the codec context's time_base.

    In other words, the container can have (and usually does) a different
    time_base than the codec. Most libav players don't bother using the
    codec's time_base or pts since not all codecs have one, but most
    containers do. (This is why the dranger tutorial says to ignore AVFrame->pts)

    …which confused me even more, given that I couldn't find any such mention in the official docs.

    Anyway, I replaced…

    double received_time = received_timestamp * av_q2d(stream_time_base);

    …with…

    double received_time = received_timestamp * av_q2d(codec_time_base);

    …and the output changed to this…

    ...

    requested: 10.00 (sec)  -> 300000 (pts)
    received:  33.40 (sec)  -> 2002 (pts)

    Still no match. What's wrong ?