Recherche avancée

Médias (91)

Autres articles (96)

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

  • FFmpeg - avcodec_receive_frame returns AVERROR(EAGAIN)

    8 novembre 2019, par Jinx

    I’m using an QOpenGL widget to draw frames. However, I’m struggling to get frames by using avcodec_receive_frame. It ended within the block else if (ret == AVERROR(EAGAIN)) and returned -11. I have no idea what made this happen. Also I checked that codecs were fine, so I guess the problem wasn’t caused by codecs.

    MyDemux.cpp

    AVPacket* MyDemux::allocatePacket()
    {
       AVPacket* packet = av_packet_alloc();
       return packet;
    }

    AVFrame* MyDemux::allocateFrame()
    {
       AVFrame* frame = av_frame_alloc();
       return frame;
    }

    int MyDemux::readFrame(AVPacket* packet)
    {
       mux.lock();
       if (!formatCtx) {
           std::cout << "formaetCtx is null" << std::endl;
           mux.unlock();
           return -1;
       }
       int ret = av_read_frame(formatCtx, packet);
       if (ret == AVERROR_EOF) {
           return -2;
       }
       if (ret != 0) {
           mux.unlock();
           av_packet_free(&packet);
           return -1;
       }
       media_type = packet->stream_index;
       mux.unlock();
       return 0;
    }

    MyDecode.cpp

    void MyDecode::decode(AVFrame* frame, AVPacket* packet)
    {
       int ret;
       ret = avcodec_send_packet(codecCtx, packet); // this returned 0
       while (ret == 0) {
           ret = avcodec_receive_frame(codecCtx, frame); // this returned -11
           if (ret == AVERROR(EINVAL)) {
               std::cout << "codec issue" << std::endl;
               av_frame_free(&frame);
               return;
           }
           else if (ret == AVERROR(EAGAIN)) { // program ends here
               std::cout << "output is not available this state" << std::endl;
               av_frame_free(&frame);
               return;
           }
           else if (ret == AVERROR(EINVAL)) {
               std::cout << "no more frames" << std::endl;
               av_frame_free(&frame);
               return;
           }
       }
    }

    main.cpp

    class MyThread : public QThread
    {
    public:

       MyDemux demux;
       MyDecode video_decode;
       myDecode audio_decode;
       MyVideoWidget* videoWidget;
       AVPacket* packet;
       AVFrame* frame;

       void initThread()
       {
           char* url = "demo.mp4";
           demux.openFile(url);
           video_decode.openCodec(demux.copy_video_codec_par());
           audio_decode.openCodec(demux.copy_audio_codec_par());
           packet = demux.allocatePacket();
           frame = demux.allocateFrame();
       }
       void run()
       {
           while (demux.readFrame(packet) != -2) {
               if (demux.get_media_type() == 0) {
                   video_decode.decode(frame, packet);
                   videoWidget->paintFrame(frame);
               }
               else if (demux.get_media_type() == 1) {
               }
           }
           video_decode.decode(frame, nullptr);
           demux.clear();
           demux.close();
       }
    };
  • WebM on the web

    23 mai 2010, par Basil Gohar — Software, Updates, flumotion, gstreamer, mpeg-la, ogg, vp8, webm, xiph

    News & developments about WebM are coming too fast to cover all of them, but it’s definitely encouraging to see that the free software world (as well as some other surprising, but welcome, players) has unequivocally embraced WebM as the … Read more (...)

  • Is there any way to specify streams by pid with ffmpeg, if the value of pid is duplicated ?

    22 novembre 2019, par Bo Wang

    I have a nice m2ts file and I would like to demux specific audio streams from it. Of important, this specification is needed to use PID as identifier.
    The exemplified m2ts file has 7 audio streams, which is detected by eac3to and shown below

    eac3to.exe F:\xxx 1)
    M2TS, 1 video track, 7 audio tracks, 5 subtitle tracks, 1:40:03
    1: Chapters, 34 chapters
    2: h265/HEVC, 2160p24 /1.001 (16:9), 10 bits
    3: TrueHD/AC3 (Atmos), English, 7.1 channels, 48kHz, dialnorm: -28dB
      (embedded: AC3, 5.1 channels, 640kbps, 48kHz, dialnorm: -27dB)
    4: E-AC3, English, 7.1 channels, 1024kbps, 48kHz, dialnorm: -28dB
      (core: AC3, 5.1 channels, 576kbps, 48kHz, dialnorm: -28dB)
    5: AC3, English, 5.1 channels, 640kbps, 48kHz, dialnorm: -27dB
    6: AC3, English, 2.0 channels, 320kbps, 48kHz, dialnorm: -27dB
    7: AC3, English, 2.0 channels, 320kbps, 48kHz, dialnorm: -27dB
    8: AC3, Chinese, 2.0 channels, 448kbps, 48kHz
    9: AC3, Chinese, 5.1 channels, 384kbps, 48kHz, 300ms
    10: Subtitle (PGS), English
    11: Subtitle (PGS), Chinese
    12: Subtitle (PGS), Chinese
    13: Subtitle (PGS), Chinese
    14: Subtitle (PGS), Chinese

    However, if I run
    ffmpeg.exe -hide_banner -i "F:\xxx\BDMV\STREAM\00055.m2ts", ffmpeg shows an additional audio stream as it recognizes the embedded 5.1 AC3 stream inside the 7.1 TrueHD audio stream, as independent :

    Input #0, mpegts, from 'F:\xxx\BDMV\STREAM\00055.m2ts':
     Duration: 00:00:48.62, start: 4198.333333, bitrate: 50005 kb/s
     Program 1
       Stream #0:0[0x1011]: Video: hevc (Main 10) (HDMV / 0x564D4448), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 23.98 tbc
       Stream #0:1[0x1100]: Audio: truehd (AC-3 / 0x332D4341), 48000 Hz, 7.1, s32 (24 bit)
       Stream #0:2[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 640 kb/s
       Stream #0:3[0x1101]: Audio: eac3 (AC-3 / 0x332D4341), 48000 Hz, 7.1, fltp, 1024 kb/s
       Stream #0:4[0x1102]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 640 kb/s
       Stream #0:5[0x1103]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 320 kb/s
       Stream #0:6[0x1104]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 320 kb/s
       Stream #0:7[0x1105]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 448 kb/s
       Stream #0:8[0x1106]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 384 kb/s
       Stream #0:9[0x12a0]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
       Stream #0:10[0x12a1]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
       Stream #0:11[0x12a2]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
       Stream #0:12[0x12a3]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
       Stream #0:13[0x12a4]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)

    It can be found that the Stream #0:1 and Stream #0:2 have the same PID 0x1100. And ffmpeg.exe -hide_banner -i "F:\xxx\BDMV\STREAM\00055.m2ts" -map i:0x1100 -c copy 00055-0x1100.thd will yield error :

    [truehd @ 0000021ae9517600] truehd files have exactly one stream
    Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
    Stream mapping:
     Stream #0:1 -> #0:0 (copy)
     Stream #0:2 -> #0:1 (copy)
       Last message repeated 1 times

    By contrast, it works by giving other pids without duplication, such as ffmpeg.exe -hide_banner -i "F:\xxx\BDMV\STREAM\00055.m2ts" -map i:0x1101 -c copy 00055-0x1101.eac3 :

    Input #0, mpegts, from 'F:\xxx\BDMV\STREAM\00055.m2ts':
     Duration: 00:00:48.62, start: 4198.333333, bitrate: 50005 kb/s
     Program 1
       Stream #0:0[0x1011]: Video: hevc (Main 10) (HDMV / 0x564D4448), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 23.98 tbc
       Stream #0:1[0x1100]: Audio: truehd (AC-3 / 0x332D4341), 48000 Hz, 7.1, s32 (24 bit)
       Stream #0:2[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 640 kb/s
       Stream #0:3[0x1101]: Audio: eac3 (AC-3 / 0x332D4341), 48000 Hz, 7.1, fltp, 1024 kb/s
       Stream #0:4[0x1102]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 640 kb/s
       Stream #0:5[0x1103]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 320 kb/s
       Stream #0:6[0x1104]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 320 kb/s
       Stream #0:7[0x1105]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, fltp, 448 kb/s
       Stream #0:8[0x1106]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 384 kb/s
       Stream #0:9[0x12a0]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
       Stream #0:10[0x12a1]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
       Stream #0:11[0x12a2]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
       Stream #0:12[0x12a3]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
       Stream #0:13[0x12a4]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
    Output #0, eac3, to '00055-0x1101.eac3':
     Metadata:
       encoder         : Lavf58.34.101
       Stream #0:0: Audio: eac3 (AC-3 / 0x332D4341), 48000 Hz, 7.1, fltp, 1024 kb/s
    Stream mapping:
     Stream #0:3 -> #0:0 (copy)
    Press [q] to stop, [?] for help
    size=    6076kB time=00:00:48.57 bitrate=1024.7kbits/s speed=92.6x
    video:0kB audio:6076kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%

    In this case, how can I specify the streams by PID ?