Recherche avancée

Médias (1)

Mot : - Tags -/pirate bay

Autres articles (107)

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

  • Emballe médias : à quoi cela sert ?

    4 février 2011, par

    Ce plugin vise à gérer des sites de mise en ligne de documents de tous types.
    Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;

  • Menus personnalisés

    14 novembre 2010, par

    MediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
    Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
    Menus créés à l’initialisation du site
    Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...)

Sur d’autres sites (11593)

  • HLS folder is not getting created in NGINX-RTMP

    15 juin 2016, par Sai Krishna

    This is my nginx configuration file. I am using OBS to stream some media files to my nginx server. The /tmp/live/ folder is getting created but /tmp/live/1080/index.m3u8 is not getting created.

    https://gist.github.com/Eta-Meson/2f88a91ad57704247dcc5c9cf4a89e35

    I have kept my configuration file in this gist.

  • FFMPEG : How to reduce black sides in a vertical video

    2 juin 2016, par hari92114

    I’m using FFMPEG to rotate a vertical video using the below command

    ffmpeg -i input.mp4 -vf 'transpose=1,scale=-1:1080,pad=1920:1080:656:0,setsar=1' -metadata:s:v:0 rotate=0  output.mp4

    While doing the playback ,most of the screen is occupied by black sides which FFMPEG has added.

    Output image : roated-video

    Is there any provision to reduce them ?

  • H.264 muxing to MP4 from CCTV (HW) encoder using ffmpeg library in C / C++, how to fetch AVCodecContext::extradata

    26 mai 2016, par Dom

    I am trying to mux a video to mp4 file from packets received via SDK API of CCTV camera. The stream from CCTV seems to consist of packets of h264 I and P-frames only (no B-frames).

    The problem is, that the file is not playable in Daum PotPlayer when I leave the AVCodecContext::extradata empty, however, I can play the file in VLC. If I feed the extra data (probably not correctly - I just copy the first 50 bytes from the packet received from the HW encoder), the file is playable in PotPlayer, but not in VLC.

    I do not know, how to prepare the extradata properly.

    The code below shows the muxing.

    void WriteVideo()
    {
       AVFormatContext* formatContext = nullptr;
       AVStream* stream = nullptr;

       int ret = 0;

       ret = avformat_alloc_output_context2(&formatContext, nullptr, "mp4", OUTPUT_V_FILE_NAME);
       if (ret < 0)
       {
           fprintf(stderr, "Error occurred when allocating output context: %d\n", ret);
           return;
       }

       stream = avformat_new_stream(formatContext, nullptr);
       if (!stream)
       {
           avformat_free_context(formatContext);
           formatContext = nullptr;
           fprintf(stderr, "Error occurred creating new stream");
           return;
       }

       stream->codec->codec_tag = 0;

       if (formatContext->oformat->flags & AVFMT_GLOBALHEADER)
       {
           stream->codec->flags |= CODEC_FLAG_GLOBAL_HEADER;
       }


       stream->codec->codec_type = AVMEDIA_TYPE_VIDEO;
       stream->codec->codec_id = AV_CODEC_ID_H264;
       stream->codec->pix_fmt = AV_PIX_FMT_YUV420P;
       stream->codec->bit_rate = 4096000; // 8192000; // 4096000; // 384000;
       stream->codec->width = 1920; // 352
       stream->codec->height = 1080; // 288
       stream->codec->gop_size = 50;

       AVRational tb;
       tb.num = 1;
       tb.den = 25;
       stream->codec->time_base = tb;
       //stream->codec->field_order = AVFieldOrder::AV_FIELD_UNKNOWN;
       //stream->codec->color_primaries = AVColorPrimaries::AVCOL_PRI_BT470BG;
       //stream->codec->color_trc = AVColorTransferCharacteristic::AVCOL_TRC_GAMMA22;
       //stream->codec->colorspace = AVColorSpace::AVCOL_SPC_BT470BG;
       //stream->codec->chroma_sample_location = AVChromaLocation::AVCHROMA_LOC_CENTER;
       AVRational aratio;
       aratio.num = 1;
       aratio.den = 1;
       stream->codec->sample_aspect_ratio = aratio;
       // stream->codec->delay = 0;
       // stream->codec->color_range = AVColorRange::AVCOL_RANGE_MPEG;

       av_dump_format(formatContext, 0, formatContext->filename, 1);

       if (!(formatContext->oformat->flags & AVFMT_NOFILE))
       {
           if (avio_open(&formatContext->pb, formatContext->filename, AVIO_FLAG_WRITE) < 0)
           {
               avformat_free_context(formatContext);
               formatContext = nullptr;
               fprintf(stderr, "Error occurred when opening output file.");
               return;

           }
       }

       avformat_write_header(formatContext, nullptr);

       int frameIdx = 0;
       int pts = 0;
       int dts = 0;
       int pkt_pos = 0;
       int size = static_cast<int>(tmpRawFrameBuffer.size());

       AVPacket pkt = { 0 };
       av_init_packet(&amp;pkt);

       while (frameIdx &lt; size)
       {
           pkt.data = tmpRawFrameBuffer[frameIdx];
           pkt.size = tmpRawFrameSizes[frameIdx];

           // debug purphose start
           FILE* f;
           char filename[MAX_PATH];
           sprintf_s(filename, MAX_PATH, OUTPUT_PACKET_FILE_PATTERN_NAME, frameIdx);
           auto err = fopen_s(&amp;f, filename, "wb");
           if (err != 0)
           {
               fprintf(stderr, "Could not open %s\n", OUTPUT_V_FILE_NAME);
               exit(1);
           }

           fflush(stdout);
           fwrite(pkt.data, 1, pkt.size, f);
           fclose(f);
           // debug purphose end

           if (tmpRawFrameTypes[frameIdx] == VIDEO_I_FRAME)
           {
               pkt.flags |= AV_PKT_FLAG_KEY;
               stream->codec->extradata_size = 50;
               stream->codec->extradata = (uint8_t*)av_malloc(stream->codec->extradata_size);
               memcpy(stream->codec->extradata, pkt.data, stream->codec->extradata_size);
           }
           pkt.pts = pts++;
           pkt.dts = dts++;
           /* rescale output packet timestamp values from codec to stream timebase */
           // av_packet_rescale_ts(&amp;pkt, stream->codec->time_base, stream->time_base);
           pkt.pts = av_rescale_q(pkt.pts, stream->codec->time_base, stream->time_base);
           pkt.dts = av_rescale_q(pkt.dts, stream->codec->time_base, stream->time_base);
           pkt.duration = 512; // should be calculated (derived from FPS 25, and 12800)
           pkt.pos = -1;
           pkt.stream_index = stream->index;

           auto ret = av_write_frame(formatContext, &amp;pkt);
           if (ret &lt; 0)
           {
               fprintf(stderr, "Error while writing video frame: %d\n", ret);
               break;
           }
           av_packet_unref(&amp;pkt);
           ++frameIdx;
       }

       if (formatContext)
       {
           av_write_trailer(formatContext);
           if (!(formatContext->oformat->flags &amp; AVFMT_NOFILE)) avio_close(formatContext->pb); // close the output file
           avformat_free_context(formatContext);
           formatContext = nullptr;
       }
    }
    </int>

    It seems, the packet from camera (buffered in tmpRawFrameBuffer vector) contains some headers, but I am not able to parse them, I do not understand the meaning of the header.

    The first bytes of the I-frame packet looks like the dump bellow :

    00 00 01 FC 02 19 F0 87 A0 23 73 41 B6 C0 01 00
    00 00 00 01 67 4D 00 2A 95 A8 1E 00 89 F9 61 00
    00 03 00 01 00 00 03 00 32 84 00 00 00 01 68 EE
    3C 80 00 00 00 01 06 E5 01 19 80 00 00 00 01 65
    B8 00 00 08 C7 B0 23 FF F7 80 EE FE 63 B6 FB F5
    ...

    The first bytes of the first P-frame :

    00 00 01 FD E5 24 00 00 00 00 00 01 61 E0 22 27
    FF D6 B0 D7 A4 2B 71 6B 19 C5 87 CA BB 8B BF 60
    14 59 B4 00 CC BC 0F C0 9E FD 84 B5 FB C4 83 DB
    5A 8B 80 FC EC D6 33 6D DE 10 96 6F 31 41 86 5C
    D4 22 F9 33 48 5B CE 77 38 17 0C D6 DD C7 6C E8
    ...

    first bytes of next P-frame :

    00 00 01 FD 5E 2F 00 00 00 00 00 01 61 E0 42 2F
    FF E7 06 DD 3C 66 26 15 94 93 7A F1 30 8A 6D B8
    AD DD 6B 0F 38 89 1D 1B 5C AC 44 6A D7 D1 21 3B
    E2 29 F8 14 BB 98 1C 06 4D B6 10 BB DB B9 CA 4F
    0B ED B1 A9 06 78 8C EC 06 6D 9F 4F 79 0C 35 5B
    ...

    ...

    begining of next I-frame :

    00 00 01 FC 02 19 F0 87 A2 23 73 41 75 89 01 00
    00 00 00 01 67 4D 00 2A 95 A8 1E 00 89 F9 61 00
    00 03 00 01 00 00 03 00 32 84 00 00 00 01 68 EE
    3C 80 00 00 00 01 06 E5 01 1B 80 00 00 00 01 65
    B8 00 00 0F 07 F0 7F F6 6C 69 43 0F F0 28 DF 97
    ...

    Does anybody know, how to fill correctly the extradata ? I just made a copy of first 50 bytes, but it seems, this is not correct.

    Probably the headers are (AUD)(SPS)(PPS)(I-Slice)(PPS)(P-Slice)(PPS)(P-Slice) ... (AUD)(SPS)(PPS)(I-Slice) (http://stackoverflow.com/a/20686267/1699328), however, I do not know, how to extract data for the

    stream->codec->extradata

    I tried to get some inspiration in this post H.264 muxed to MP4 using libavformat not playing back, but I am not able to figure out what are values of spsFrameLen, ppsFrameLen and spsFrame.

    The result of the muxer (first and last bytes of the mp4 file) :

    00 00 00 20 66 74 79 70 69 73 6F 6D 00 00 02 00
    69 73 6F 6D 69 73 6F 32 61 76 63 31 6D 70 34 31
    00 00 00 08 66 72 65 65 00 26 2E 6D 6D 64 61 74
    00 00 00 0D FC 02 19 F0 87 A0 23 73 41 B6 C0 01
    00 00 00 00 16 67 4D 00 2A 95 A8 1E 00 89 F9 61
    00 00 03 00 01 00 00 03 00 32 84 00 00 00 04 68
    EE 3C 80 00 00 00 05 06 E5 01 19 80 00 01 C0 87
    65 B8 00 00 08 C7 B0 23 FF F7 80 EE FE 63 B6 FB
    F5 97 A8 6B 48 39 61 99 FD 99 27 41 F2 78 54 EE
    D1 38 8E E8 18 DD 05 E4 BA F4 EB 69 CF 91 5C 34
    ...
    ...
    ...
    95 B8 D8 D4 C3 AF A1 BA AC 28 F0 D4 D4 7C 48 9A
    0C A6 8C 4C 98 00 00 05 1E 6D 6F 6F 76 00 00 00
    6C 6D 76 68 64 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 03 E8 00 00 13 B0 00 01 00 00 01 00 00
    00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 02 00 00 04 48 74 72 61
    6B 00 00 00 5C 74 6B 68 64 00 00 00 03 00 00 00
    00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 13
    B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 40 00 00 00 07 80 00 00 04 38 00 00 00 00 00
    24 65 64 74 73 00 00 00 1C 65 6C 73 74 00 00 00
    00 00 00 00 01 00 00 13 B0 00 00 00 00 00 01 00
    00 00 00 03 C0 6D 64 69 61 00 00 00 20 6D 64 68
    64 00 00 00 00 00 00 00 00 00 00 00 00 00 00 32
    00 00 00 FC 00 55 C4 00 00 00 00 00 2D 68 64 6C
    72 00 00 00 00 00 00 00 00 76 69 64 65 00 00 00
    00 00 00 00 00 00 00 00 00 56 69 64 65 6F 48 61
    6E 64 6C 65 72 00 00 00 03 6B 6D 69 6E 66 00 00
    00 14 76 6D 68 64 00 00 00 01 00 00 00 00 00 00
    00 00 00 00 00 24 64 69 6E 66 00 00 00 1C 64 72
    65 66 00 00 00 00 00 00 00 01 00 00 00 0C 75 72
    6C 20 00 00 00 01 00 00 03 2B 73 74 62 6C 00 00
    00 93 73 74 73 64 00 00 00 00 00 00 00 01 00 00
    00 83 61 76 63 31 00 00 00 00 00 00 00 01 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 80
    04 38 00 48 00 00 00 48 00 00 00 00 00 00 00 01
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    00 18 FF FF 00 00 00 2D 61 76 63 43 01 4D 00 2A
    FF E1 00 16 67 4D 00 2A 95 A8 1E 00 89 F9 61 00
    00 03 00 01 00 00 03 00 32 84 01 00 04 68 EE 3C
    80 00 00 00 18 73 74 74 73 00 00 00 00 00 00 00
    01 00 00 00 7E 00 00 02 00 00 00 00 1C 73 74 73
    73 00 00 00 00 00 00 00 03 00 00 00 01 00 00 00
    33 00 00 00 65 00 00 00 34 73 74 73 63 00 00 00
    00 00 00 00 03 00 00 00 01 00 00 00 3B 00 00 00
    01 00 00 00 02 00 00 00 37 00 00 00 01 00 00 00
    03 00 00 00 0C 00 00 00 01 00 00 02 0C 73 74 73
    7A 00 00 00 00 00 00 00 00 00 00 00 7E 00 01 C0
    C7 00 00 24 EE 00 00 2F 67 00 00 1D 83 00 00 2E
    8F 00 00 30 B6 00 00 2F 44 00 00 2F 50 00 00 34
    6B 00 00 30 BE 00 00 31 0C 00 00 31 E7 00 00 30
    EA 00 00 31 4E 00 00 31 A8 00 00 32 21 00 00 31
    E6 00 00 31 B5 00 00 31 14 00 00 31 AF 00 00 31
    9D 00 00 33 60 00 00 32 11 00 00 32 4C 00 00 31
    F0 00 00 32 91 00 00 43 43 00 00 44 29 00 00 44
    EC 00 00 44 20 00 00 44 86 00 00 45 AD 00 00 47
    47 00 00 46 9F 00 00 46 D9 00 00 47 BE 00 00 48
    CD 00 00 3E 50 00 00 40 98 00 00 41 0E 00 00 40
    43 00 00 41 07 00 00 41 BB 00 00 41 FF 00 00 30
    5E 00 00 33 C7 00 00 34 B7 00 00 33 F1 00 00 33
    0D 00 00 32 DB 00 01 89 86 00 00 3B E1 00 00 3C
    55 00 00 3C 64 00 00 3C B7 00 00 3C FD 00 00 3E
    54 00 00 3E C5 00 00 3E 1C 00 00 3E 94 00 00 3E
    44 00 00 3E D7 00 00 3F CC 00 00 3E D6 00 00 40
    00 00 00 40 4D 00 00 40 04 00 00 3F A9 00 00 40
    82 00 00 41 0F 00 00 41 64 00 00 41 E5 00 00 42
    1E 00 00 42 2C 00 00 42 80 00 00 42 4D 00 00 43
    9F 00 00 43 DA 00 00 44 45 00 00 44 21 00 00 44
    B7 00 00 45 22 00 00 45 E3 00 00 45 BF 00 00 46
    18 00 00 47 4B 00 00 45 05 00 00 47 34 00 00 46
    60 00 00 46 97 00 00 46 66 00 00 46 29 00 00 46
    38 00 00 47 1D 00 00 47 42 00 00 47 18 00 00 47
    13 00 00 46 52 00 00 47 48 00 00 46 F8 00 01 BE
    E3 00 00 3F 56 00 00 3B 32 00 00 38 F8 00 00 37
    56 00 00 36 2D 00 00 35 DA 00 00 34 6B 00 00 3E
    BE 00 00 3E B5 00 00 3F 33 00 00 3F AC 00 00 3F
    38 00 00 42 32 00 01 1B DC 00 01 80 50 00 01 14
    06 00 00 C2 BB 00 00 96 12 00 00 6D EC 00 00 54
    E6 00 00 3A AC 00 00 32 00 00 00 2F 0A 00 00 2D
    F1 00 00 1B 7F 00 00 00 1C 73 74 63 6F 00 00 00
    00 00 00 00 03 00 00 00 30 00 0F DD AB 00 1F 7D
    9E 00 00 00 62 75 64 74 61 00 00 00 5A 6D 65 74
    61 00 00 00 00 00 00 00 21 68 64 6C 72 00 00 00
    00 00 00 00 00 6D 64 69 72 61 70 70 6C 00 00 00
    00 00 00 00 00 00 00 00 00 2D 69 6C 73 74 00 00
    00 25 A9 74 6F 6F 00 00 00 1D 64 61 74 61 00 00
    00 01 00 00 00 00 4C 61 76 66 35 37 2E 32 33 2E
    31 30 30

    Thanks a lot for any advices.