Recherche avancée

Médias (1)

Mot : - Tags -/ticket

Autres articles (81)

  • Formulaire personnalisable

    21 juin 2013, par

    Cette page présente les champs disponibles dans le formulaire de publication d’un média et il indique les différents champs qu’on peut ajouter. Formulaire de création d’un Media
    Dans le cas d’un document de type média, les champs proposés par défaut sont : Texte Activer/Désactiver le forum ( on peut désactiver l’invite au commentaire pour chaque article ) Licence Ajout/suppression d’auteurs Tags
    On peut modifier ce formulaire dans la partie :
    Administration > Configuration des masques de formulaire. (...)

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

  • Organiser par catégorie

    17 mai 2013, par

    Dans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
    Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
    Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...)

Sur d’autres sites (5958)

  • 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 (WINDOWS) - Jerky Videos with vidstabdetect & vidstabtransform

    26 avril 2016, par Onish Mistry

    I require to stabilize multiple video clips and finally stitch all the clips, along with images into one final video. These "Scenes" consisting video clips as well as images also can have overlays like Texts and/or other Images.

    Basically the code I have in place as of now does everything for me just fine, where all the video clips are first converted into frame images. It then reads all the frames, puts on the overlays, adds a fade transition in-between "Scenes".

    Coming to the issue I am facing with stabilization, when I extract image frames out of the stabilized video clip and simply try to recreate video from those extracted image frames, it comes out with a weird jerk, almost like as if it is missing those stabilization calculations or something, not sure. It still looks a bit stabilized but with missing frames. I have checked duration and number of frames extracted, everything matches with the source, non-stabilized video.

    Below is the command used to stabilize the video, result of which is a perfectly stabilized video.

    ffmpeg -i 1.MOV -r 30 -vf vidstabdetect=result="transforms.trf" -f null NUL &amp;&amp; ffmpeg -i 1.MOV -r 30 -vf vidstabtransform=smoothing=30:input="transforms.trf" -vcodec libx264 -b:v 2000k -f mp4 results.mp4

    Below is the command I use for video to image :

    ffmpeg -i results.mp4 -r 30 -qscale 1 -f image2 %d.jpg

    Below is the command I use for image to video :

    ffmpeg -i %d.jpg -r 30 -vcodec libx264 -b:v 2000k -f mp4 final.mp4

    Any help or suggestions are welcomed and appreciated.

    Thanks,

  • How to convert an FFMPEG AVFrame in YUVJ420P to AVFoundation cVPixelBufferRef ?

    17 août 2016, par arbief

    I have an FFMPEG AVFrame in YUVJ420P and I want to convert it to a CVPixelBufferRef with CVPixelBufferCreateWithBytes. The reason I want to do this is to use AVFoundation to show/encode the frames.

    I selected kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange and tried converting it since the AVFrame has the data in three planes
    Y480 Cb240 Cr240. And according to what I’ve researched this matches the selected kCVPixelFormatType. By being biplanar I need to convert it into a buffer that contains Y480 and CbCr480 Interleaved.

    I tried to create a buffer with 2 planes :

    • frame->data[0] on the first plane,
    • frame->data[1] and frame->data[2] interleaved on the second plane.

    However, I’m getting return error -6661 (invalid a) from CVPixelBufferCreateWithBytes :

    "Invalid function parameter. For example, out of range or the wrong type."

    I don’t have expertise on image processing at all, so any pointers to documentation that can get me started in the right approach to this problem are appreciated. My C skills aren’t top of the line either so maybe I’m making a basic mistake here.

       uint8_t **buffer = malloc(2*sizeof(int *));
       buffer[0] = frame->data[0];
       buffer[1] = malloc(frame->linesize[0]*sizeof(int));
       for(int i = 0; ilinesize[0]; i++){
           if(i%2){
               buffer[1][i]=frame->data[1][i/2];
           }else{
               buffer[1][i]=frame->data[2][i/2];
           }
       }

       int ret = CVPixelBufferCreateWithBytes(NULL, frame->width, frame->height, kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange, buffer, frame->linesize[0], NULL, 0, NULL, cvPixelBufferSample)

    The frame is the AVFrame with the rawData from FFMPEG Decoding.