Recherche avancée

Médias (91)

Autres articles (106)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Encoding and processing into web-friendly formats

    13 avril 2011, par

    MediaSPIP automatically converts uploaded files to internet-compatible formats.
    Video files are encoded in MP4, Ogv and WebM (supported by HTML5) and MP4 (supported by Flash).
    Audio files are encoded in MP3 and Ogg (supported by HTML5) and MP3 (supported by Flash).
    Where possible, text is analyzed in order to retrieve the data needed for search engine detection, and then exported as a series of image files.
    All uploaded files are stored online in their original format, so you can (...)

  • Qu’est ce qu’un masque de formulaire

    13 juin 2013, par

    Un masque de formulaire consiste en la personnalisation du formulaire de mise en ligne des médias, rubriques, actualités, éditoriaux et liens vers des sites.
    Chaque formulaire de publication d’objet peut donc être personnalisé.
    Pour accéder à la personnalisation des champs de formulaires, il est nécessaire d’aller dans l’administration de votre MediaSPIP puis de sélectionner "Configuration des masques de formulaires".
    Sélectionnez ensuite le formulaire à modifier en cliquant sur sont type d’objet. (...)

Sur d’autres sites (11869)

  • Révision 103307 : - Les plugins-dist de spip 3.2 ne sont pas supposé avoir de support pour qu’il f...

    17 mars 2017, par spip.franck@lien-d-amis.net

    - La version de mini de compatibilité est maintenant 3.2.0-dev, comme, ça, quand l’alpha sortira, cela devrait être bon (quand la version 3.2.0 stable sortira, je mettrais 3.2.0 comme version mini)
    - Il y avait aussi un ou deux mots avec des accents comme par exemple è j’ai fait le changement pour y mettre à la place è ou autres

  • ffmpeg 180 degree panoramic fisheye image to equirectangular / flat

    7 juillet 2024, par Willy62

    I am trying to get my Hikvision Panovu image of a sportsfield to look like a standard camera image, similar to what would be seen with a Veo solution / traditional camera.

    


    This is what the image would ideally look like with a little bit of zoom. Note the players are all upright and it looks "correct" and not skewed with the far end of the field in line with the horizon.

    


    veo sample image

    


    The original image looks like this (same field but other side). This is a 180 degree panoramic image from a Hikvision camera as found here.

    


    It provides the following output natively.

    


    hikvision native view

    


    I have had some luck converting the image with ffmpeg using the v360 filter. Note there is a downward tilt meaning I have to apply some yaw to correct it.

    


    v360=input=fisheye:output=rectilinear:ih_fov=180:iv_fov=87.5:d_fov=87.5:pitch=20:yaw=5:w=3840:h=2160


    


    And this gets the following output :

    


    deskewed v360 image

    


    So the challenge here to make the original image flat/equirect but to address the skew such that :

    


      

    • the players are orientated "upright"
    • 


    • the far sideline of the field looks like a straight line in line with the horizon
    • 


    • the image quality is preserved as best as possible
    • 


    


    With these cameras the image is 32MP so there is the opportunity to do an ePTZ into the area of interest.

    


    I suspect v360 isnt the right choice here and it is some remap-style filter, or perhaps I am best going across to gstreamer or similar.

    


    I tried an ffmpeg v360 filter and it partially works, but the players are still skewed because the top of the image is not wide enough. The issue can possibly be solved by correctly applying a couplex perspective filter, but I think this will only mask the issue and perspective requires a complex filter that hasn't worked for me so far.

    


  • understanding HEVC NAL SEI termination and byte alignment parsing with ffmpeg

    3 mars, par rodeomacon

    The NAL SEI timecode message I am currently writing to file is 00 00 01 4E 01 88 06 XX XX XX XX XX 10 80 (The termination portion being 10 80, payloadSize set to 0x06 and the XX bytes being an encoding of the frames/seconds/minutes/hours).

    


    My goal is to read the timecode with ffmpeg -i video.h265 -c:v copy -bsf:v trace_headers -f null - and ffprobe -show_frames video.mov with no errors.

    


    The 3 left most 0 bits of the final 0x10 byte are the conclusion of the time_offset_length (Equal to 0) data. Following this, I am intending to have a rbsp_stop_one_bit followed by four rbsp_alignment_zero_bits to result in byte alignment.

    


    With this termination configuration (No trailing 0x80 byte and the payloadSize set to 0x05 like 00 00 01 4E 01 88 05 XX XX XX XX XX 10), ffmpeg reports Invalid value at time_offset_length[i]: bitstream ended.

    


    With the addition of the trailing 0x80 byte and changing the payloadSize to 0x06 to match, ffmpeg does not throw a warning but instead indicates there are extra, unused bits :

    


    [trace_headers @ 0000015aff793a80] Prefix Supplemental Enhancement Information
[trace_headers @ 0000015aff793a80] 0           forbidden_zero_bit                                          0 = 0
[trace_headers @ 0000015aff793a80] 1           nal_unit_type                                          100111 = 39
[trace_headers @ 0000015aff793a80] 7           nuh_layer_id                                           000000 = 0
[trace_headers @ 0000015aff793a80] 13          nuh_temporal_id_plus1                                     001 = 1
[trace_headers @ 0000015aff793a80] 16          last_payload_type_byte                               10001000 = 136
[trace_headers @ 0000015aff793a80] 24          last_payload_size_byte                               00000110 = 6
[trace_headers @ 0000015aff793a80] Time Code
[trace_headers @ 0000015aff793a80] 32          num_clock_ts                                               01 = 1
[trace_headers @ 0000015aff793a80] 34          clock_timestamp_flag[0]                                     1 = 1
[trace_headers @ 0000015aff793a80] 35          units_field_based_flag[0]                                   0 = 0
[trace_headers @ 0000015aff793a80] 36          counting_type[0]                                        00000 = 0
[trace_headers @ 0000015aff793a80] 41          full_timestamp_flag[0]                                      1 = 1
[trace_headers @ 0000015aff793a80] 42          discontinuity_flag[0]                                       0 = 0
[trace_headers @ 0000015aff793a80] 43          cnt_dropped_flag[0]                                         0 = 0
[trace_headers @ 0000015aff793a80] 44          n_frames[0]                                         000110101 = 53
[trace_headers @ 0000015aff793a80] 53          seconds_value[0]                                       010010 = 18
[trace_headers @ 0000015aff793a80] 59          minutes_value[0]                                       010100 = 20
[trace_headers @ 0000015aff793a80] 65          hours_value[0]                                          01010 = 10
[trace_headers @ 0000015aff793a80] 70          time_offset_length[0]                                   00000 = 0
[trace_headers @ 0000015aff793a80] 75          bit_equal_to_one                                            1 = 1
[trace_headers @ 0000015aff793a80] 76          bit_equal_to_zero                                           0 = 0
[trace_headers @ 0000015aff793a80] 77          bit_equal_to_zero                                           0 = 0
[trace_headers @ 0000015aff793a80] 78          bit_equal_to_zero                                           0 = 0
[trace_headers @ 0000015aff793a80] 79          bit_equal_to_zero                                           0 = 0
[trace_headers @ 0000015aff793a80] 80          rbsp_stop_one_bit                                           1 = 1
[trace_headers @ 0000015aff793a80] 81          rbsp_alignment_zero_bit                                     0 = 0
[trace_headers @ 0000015aff793a80] 82          rbsp_alignment_zero_bit                                     0 = 0
[trace_headers @ 0000015aff793a80] 83          rbsp_alignment_zero_bit                                     0 = 0
[trace_headers @ 0000015aff793a80] 84          rbsp_alignment_zero_bit                                     0 = 0
[trace_headers @ 0000015aff793a80] 85          rbsp_alignment_zero_bit                                     0 = 0
[trace_headers @ 0000015aff793a80] 86          rbsp_alignment_zero_bit                                     0 = 0
[trace_headers @ 0000015aff793a80] 87          rbsp_alignment_zero_bit                                     0 = 0


    


    Without the bit_equal_to_one, ffmpeg gives a generic error Failed to read unit 0 (type 39) after reading the time_offset_length correctly.

    


    What is the meaning of bit_equal_to_one and bit_equal_to_zero in this context and is this the intended SEI termination method ? Why are those bits not parsed as the alignment bits ?