Recherche avancée

Médias (91)

Autres articles (26)

  • Personnaliser les catégories

    21 juin 2013, par

    Formulaire de création d’une catégorie
    Pour ceux qui connaissent bien SPIP, une catégorie peut être assimilée à une rubrique.
    Dans le cas d’un document de type catégorie, les champs proposés par défaut sont : Texte
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire.
    Dans le cas d’un document de type média, les champs non affichés par défaut sont : Descriptif rapide
    Par ailleurs, c’est dans cette partie configuration qu’on peut indiquer le (...)

  • Le plugin : Podcasts.

    14 juillet 2010, par

    Le problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
    Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
    Types de fichiers supportés dans les flux
    Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...)

  • Selection of projects using MediaSPIP

    2 mai 2011, par

    The examples below are representative elements of MediaSPIP specific uses for specific projects.
    MediaSPIP farm @ Infini
    The non profit organizationInfini develops hospitality activities, internet access point, training, realizing innovative projects in the field of information and communication technologies and Communication, and hosting of websites. It plays a unique and prominent role in the Brest (France) area, at the national level, among the half-dozen such association. Its members (...)

Sur d’autres sites (4424)

  • Open letter to the European Parliament’s LIBE committee

    28 novembre 2019, par Joselyn Khor — Uncategorized

    An open letter to the European Parliament’s LIBE committee

    e-evidence newsletter

    In an effort to stem the tide of external control over user privacy, Matomo has rallied with other like-minded companies like Protonmail, NextCloud, Tutanota and Mailfence, to advocate for pro-privacy changes to the European Commission’s “e-evidence” proposal.

    Excerpt from the letter : 

    “The Commission’s e-evidence proposal threatens the competitive advantage European tech businesses have over their American counterparts by undermining the protections we can provide to our customers. It breaks with the long-standing rule that only trusted national judicial authorities can order companies to hand over customer data for criminal investigations. Instead, the Commission’s e-evidence proposal would allow any foreign law enforcement agency from across the EU to force us to hand out customer data without our own authorities doublechecking the foreign order.

    “Different from American Big Tech firms, European privacy tech companies lack the resources to verify the legality of each foreign order. Because of the way the e-evidence proposal is phrased, we would not even be able to properly authenticate foreign authorities to ensure that we are not replying to a malicious actor – let alone object to an order if we found it to be unwarranted.”

    Matomo Founder, Matthieu Aubry emphasises, “It is time that privacy-minded tech companies work together to defend their users, their businesses, and the values they are founded on. This is why we are supporting Privacy Tech Europe.”

    Read our open letter to members of the LIBE Committee in full.

  • Multiple Dialogue lines of an ASS subtitle file is displayed at the same time on the video file

    14 janvier 2024, par Furkan Gözükara

    I am trying to code an ASS subtitle burner.

    


    Converting given SRT file into ASS subtitle

    


    Let me show examples

    


    Below is given SRT file - generated with Whisper

    


    1&#xA;00:00:00,000 --> 00:00:00,080&#xA;<u>American</u> XL Bully Dog&#xA;&#xA;2&#xA;00:00:00,080 --> 00:00:00,640&#xA;American <u>XL</u> Bully Dog&#xA;&#xA;3&#xA;00:00:00,640 --> 00:00:01,140&#xA;American XL <u>Bully</u> Dog&#xA;&#xA;4&#xA;00:00:01,140 --> 00:00:01,280&#xA;American XL Bully <u>Dog</u>&#xA;&#xA;5&#xA;00:00:01,280 --> 00:00:01,520&#xA;<u>is</u> a danger to&#xA;&#xA;6&#xA;00:00:01,520 --> 00:00:01,640&#xA;is <u>a</u> danger to&#xA;&#xA;7&#xA;00:00:01,640 --> 00:00:01,800&#xA;is a <u>danger</u> to&#xA;&#xA;8&#xA;00:00:01,800 --> 00:00:02,220&#xA;is a danger <u>to</u>&#xA;&#xA;9&#xA;00:00:02,220 --> 00:00:02,380&#xA;<u>our</u> communities, particularly our&#xA;&#xA;10&#xA;00:00:02,380 --> 00:00:02,680&#xA;our <u>communities,</u> particularly our&#xA;&#xA;11&#xA;00:00:02,680 --> 00:00:03,360&#xA;our communities, particularly our&#xA;&#xA;12&#xA;00:00:03,360 --> 00:00:03,580&#xA;our communities, <u>particularly</u> our&#xA;&#xA;13&#xA;00:00:03,580 --> 00:00:04,060&#xA;our communities, particularly <u>our</u>&#xA;&#xA;14&#xA;00:00:04,060 --> 00:00:04,280&#xA;<u>children.</u>&#xA;

    &#xA;

    Then this above SRT file is converted into the below ASS subtitle

    &#xA;

    [Script Info]&#xA;ScriptType: v4.00&#x2B;&#xA;PlayResX: 384&#xA;PlayResY: 288&#xA;&#xA;[V4&#x2B; Styles]&#xA;Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding&#xA;Style: Default,Arial,16,&amp;H00FFFFFF,&amp;H0000FF00,&amp;H00000000,&amp;H00000000,0,0,0,0,100,100,0,0,1,1,0,2,10,10,10,1&#xA;&#xA;[Events]&#xA;Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text&#xA;Dialogue: 0,00:00:00.000,00:00:00.080,Default,,0,0,0,,{\c&amp;H00FF00&amp;}American{\c&amp;HFFFFFF&amp;} XL Bully Dog&#xA;Dialogue: 0,00:00:00.080,00:00:00.640,Default,,0,0,0,,American {\c&amp;H00FF00&amp;}XL{\c&amp;HFFFFFF&amp;} Bully Dog&#xA;Dialogue: 0,00:00:00.640,00:00:01.140,Default,,0,0,0,,American XL {\c&amp;H00FF00&amp;}Bully{\c&amp;HFFFFFF&amp;} Dog&#xA;Dialogue: 0,00:00:01.140,00:00:01.280,Default,,0,0,0,,American XL Bully {\c&amp;H00FF00&amp;}Dog{\c&amp;HFFFFFF&amp;}&#xA;Dialogue: 0,00:00:01.280,00:00:01.520,Default,,0,0,0,,{\c&amp;H00FF00&amp;}is{\c&amp;HFFFFFF&amp;} a danger to&#xA;Dialogue: 0,00:00:01.520,00:00:01.640,Default,,0,0,0,,is {\c&amp;H00FF00&amp;}a{\c&amp;HFFFFFF&amp;} danger to&#xA;Dialogue: 0,00:00:01.640,00:00:01.800,Default,,0,0,0,,is a {\c&amp;H00FF00&amp;}danger{\c&amp;HFFFFFF&amp;} to&#xA;Dialogue: 0,00:00:01.800,00:00:02.220,Default,,0,0,0,,is a danger {\c&amp;H00FF00&amp;}to{\c&amp;HFFFFFF&amp;}&#xA;Dialogue: 0,00:00:02.220,00:00:02.380,Default,,0,0,0,,{\c&amp;H00FF00&amp;}our{\c&amp;HFFFFFF&amp;} communities, particularly our&#xA;Dialogue: 0,00:00:02.380,00:00:02.680,Default,,0,0,0,,our {\c&amp;H00FF00&amp;}communities,{\c&amp;HFFFFFF&amp;} particularly our&#xA;Dialogue: 0,00:00:02.680,00:00:03.360,Default,,0,0,0,,our communities, particularly our&#xA;Dialogue: 0,00:00:03.360,00:00:03.580,Default,,0,0,0,,our communities, {\c&amp;H00FF00&amp;}particularly{\c&amp;HFFFFFF&amp;} our&#xA;Dialogue: 0,00:00:03.580,00:00:04.060,Default,,0,0,0,,our communities, particularly {\c&amp;H00FF00&amp;}our{\c&amp;HFFFFFF&amp;}&#xA;Dialogue: 0,00:00:04.060,00:00:04.280,Default,,0,0,0,,{\c&amp;H00FF00&amp;}children.{\c&amp;HFFFFFF&amp;}&#xA;

    &#xA;

    Both when playing the subtitle in any video player or burning into video via FFMPEG, what happens is, multiple Dialogue lines are being displayed at the same time on the screen.

    &#xA;

    I am doing a lot of research regarding this but still couldn't find out the issue.

    &#xA;

    Here screenshot of what I mean. So how can I fix this issue ? What is wrong with my ASS file format ?

    &#xA;

    enter image description here

    &#xA;

    Here below the functio that I am use to generate that ASS format

    &#xA;

    def convert_srt_to_ass(srt_content):&#xA;    # ASS header&#xA;    ass_header = (&#xA;        "[Script Info]\n"&#xA;        "ScriptType: v4.00&#x2B;\n"&#xA;        "PlayResX: 384\n"&#xA;        "PlayResY: 288\n\n"&#xA;        "[V4&#x2B; Styles]\n"&#xA;        "Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding\n"&#xA;        "Style: Default,Arial,16,&amp;H00FFFFFF,&amp;H0000FF00,&amp;H00000000,&amp;H00000000,0,0,0,0,100,100,0,0,1,1,0,2,10,10,10,1\n\n"&#xA;        "[Events]\n"&#xA;        "Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text\n"&#xA;    )&#xA;&#xA;    ass_content = ass_header&#xA;    # Adjust regex to properly capture subtitle number, start time, end time, and text&#xA;    matches = list(re.finditer(r&#x27;(\d&#x2B;)\n(\d{2}:\d{2}:\d{2},\d{3}) --> (\d{2}:\d{2}:\d{2},\d{3})\n(.&#x2B;?)\n\n&#x27;, srt_content, re.DOTALL))&#xA;&#xA;    prev_end = None&#xA;    &#xA;    for match in matches:&#xA;        start, end, text = match.group(2), match.group(3), match.group(4)&#xA;        start = start.replace(&#x27;,&#x27;, &#x27;.&#x27;)&#xA;        end = end.replace(&#x27;,&#x27;, &#x27;.&#x27;)&#xA;&#xA;        # Calculate the correct start and end times to ensure no overlap&#xA;        if prev_end and start &lt;= prev_end:&#xA;            # Adjust the previous end time to be a bit before the current start time&#xA;            prev_end_time = datetime.strptime(prev_end, &#x27;%H:%M:%S.%f&#x27;)&#xA;            adjusted_end_time = prev_end_time - timedelta(milliseconds=100)  # Adjust by 100 milliseconds&#xA;            prev_end = adjusted_end_time.strftime(&#x27;%H:%M:%S.%f&#x27;)[:-3]  # Truncate to 3 decimal places&#xA;&#xA;            ass_content = ass_content.rstrip()&#xA;            ass_content = re.sub(r&#x27;(\d{2}:\d{2}:\d{2}\.\d{3}),Default,,$&#x27;, f&#x27;{prev_end},Default,,&#x27;, ass_content, 1)&#xA;            ass_content &#x2B;= &#x27;\n&#x27;&#xA;&#xA;        prev_end = end&#xA;&#xA;        # Formatting the text and adding it to the content&#xA;        text = text.replace(&#x27;<u>&#x27;, &#x27;{\\c&amp;H00FF00&amp;}&#x27;).replace(&#x27;</u>&#x27;, &#x27;{\\c&amp;HFFFFFF&amp;}&#x27;)&#xA;        text = text.replace(&#x27;\n&#x27;, &#x27;\\N&#x27;)  # Convert newlines within text for ASS format&#xA;        ass_content &#x2B;= f"Dialogue: 0,{start},{end},Default,,0,0,0,,{text}\n"&#xA;&#xA;        &#xA;        # Conversion of text and other formatting remains the same&#xA;&#xA;    return ass_content&#xA;

    &#xA;

  • "ffmpeg has text relocations" error in Android

    5 janvier 2015, par djzmo

    I’m building an Android video-sending application. I need the video to be compressed before being uploaded. In this case, I chose to use this Android wrapper of FFmpeg : https://github.com/hiteshsondhi88/ffmpeg-android-java

    FFmpeg error: WARNING: linker: /data/data/com.mycompany.myapplication/files/ffmpeg has text relocations. This is wasting memory and prevents security hardening. Please fix.
       ffmpeg version n2.4.2 Copyright (c) 2000-2014 the FFmpeg developers
       built on Oct  7 2014 15:08:46 with gcc 4.8 (GCC)
       configuration: --target-os=linux --cross-prefix=/home/sb/Source-Code/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/sb/Source-Code/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --enable-fontconfig --enable-pthreads --disable-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config=/home/sb/Source-Code/ffmpeg-android/ffmpeg-pkg-config --prefix=/home/sb/Source-Code/ffmpeg-android/build/armeabi-v7a-neon --extra-cflags='-I/home/sb/Source-Code/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all -mfpu=neon' --extra-ldflags='-L/home/sb/Source-Code/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxflags=
       libavutil      54.  7.100 / 54.  7.100
       libavcodec     56.  1.100 / 56.  1.100
       libavformat    56.  4.101 / 56.  4.101
       libavdevice    56.  0.100 / 56.  0.100
       libavfilter     5.  1.100 /  5.  1.100
       libswscale      3.  0.100 /  3.  0.100
       libswresample   1.  1.100 /  1.  1.100
       libpostproc    53.  0.100 / 53.  0.100
       Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/emulated/0/DCIM/Camera/VID_20150104_235926.mp4':
       Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: isommp42
       creation_time   : 2015-01-04 16:00:40
       Duration: 00:01:12.60, start: 0.000000, bitrate: 19590 kb/s
       Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 19364 kb/s, SAR 65536:65536 DAR 16:9, 26.73 fps, 26.92 tbr, 90k tbn, 180k tbc (default)
       Metadata:
       creation_time   : 2015-01-04 16:00:40
       handler_name    : VideoHandle
       Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 196 kb/s (default)
       Metadata:
       creation_time   : 2015-01-04 16:00:40
       handler_name    : SoundHandle
       [libx264 @ 0x40208800] using SAR=1/1
       [libx264 @ 0x40208800] frame MB size (120x68) > level limit (1620)
       [libx264 @ 0x40208800] DPB size (1 frames, 8160 mbs) > level limit (0 frames, 8100 mbs)
       [libx264 @ 0x40208800] MB rate (219640) > level limit (40500)
       [libx264 @ 0x40208800] using cpu capabilities: none!
       [libx264 @ 0x40208800] profile Constrained Baseline, level 3.0
       [libx264 @ 0x40208800] 264 - core 142 - H.264/MPEG-4 AVC codec - Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc_lookahead=0 rc=crf mbtree=0 crf=28.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 vbv_maxrate=2500 vbv_bufsize=1835 crf_max=0.0 nal_hrd=none filler=0 ip_ratio=1.40 aq=0
       Output #0, mp4, to '/storage/emulated/0/Android/data/com.mycompany.myapplication/cache/VID_20150104_235926.mp4':
       Metadata:
       major_brand     : mp42
       minor_version   : 0
       compatible_brands: isommp42
       encoder         : Lavf56.4.101
       Stream #0:0(eng): Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p, 1920x1080 [SAR 65536:65536 DAR 16:9], q=-1--1, 2500 kb/s, 26.92 fps, 10336 tbn, 26.92 tbc (default)
       Metadata:
       creation_time   : 2015-01-04 16:00:40
       handler_name    : VideoHandle
       encoder         : Lavc56.1.100 libx264
       Stream #0:1(eng): Audio: aac ([64][0][0][0] / 0x0040), 4

    Everything seemed fine when I compress small files (below 20 seconds), but when I tried to compress larger files, I seldom get the above error in the middle of the compression process, and the process was also terminated immediately. I need the application to be able to compress one minute video to about 20-35 MB.

    Here is the FFmpeg command I used :

    ffmpeg -y -i -codec:v libx264 -profile:v baseline -level 3.0 -b:v 2500k -minrate 2500k -maxrate 2500k -bufsize 1835k -pix_fmt yuv420p -preset ultrafast -crf 28 -codec:a copy

    Any idea on what went wrong ?
    Any kind of help would be very appreciated.