Recherche avancée

Médias (91)

Autres articles (112)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

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

Sur d’autres sites (11226)

  • Anomalie #2866 : SPIP sous estime les visites de 30 à 50% par rapport à Google Analytics

    16 mai 2013, par cedric -

    Pour info tu dis Après consultation auprès d’autres utilisateurs, il semblerait que le même problème survienne. mais je n’ai aucune trace d’autre retour dans ce sens, au contraire : http://forum.spip.net/fr_247990.html

  • Executing shell script on Google Cloud Functions

    9 juillet 2020, par João Abrantes

    I am trying to encode .mp4 videos into hls using FFmpeg.

    


    I am using subprocess to call FFmpeg :

    


    def transcoder(data, context):
    """Background Cloud Function to be triggered by Cloud Storage.
       This generic function logs relevant data when a file is changed.

    Args:
        data (dict): The Cloud Functions event payload.
        context (google.cloud.functions.Context): Metadata of triggering event.
    Returns:
        None; the output is written to Stackdriver Logging
    """
    try:
        input_filename = data['name'].split('/')[-1] #videos have no extension
        input_path = f'/tmp/{input_filename}'
        print(f'filename {input_filename}')
        print(f'input_path {input_path}')
        print(f"bucket {data['bucket']}")
        print(f"name {data['name']}")

        outdir_path = f'/tmp/output/{input_filename}'
        os.makedirs(outdir_path, exist_ok=True)

        bucket = client.get_bucket(data['bucket'])
        blob = bucket.get_blob(data['name'])
        blob.download_to_filename(input_path)

        cmd = f'''ffmpeg -y -i {input_path} \
              -preset ultrafast -g 60 -sc_threshold 0 \
              -map 0:0 -map 0:1 -map 0:0 -map 0:1 \
              -s:v:0 360x640 -c:v:0 libx264 -b:v:0 365k \
              -s:v:1 720x1280 -c:v:1 libx264 -b:v:1 3000k \
              -c:a copy \
              -var_stream_map "v:0,a:0 v:1,a:1" \
              -master_pl_name master.m3u8 \
              -f hls -hls_time 6 -hls_list_size 0 \
              -hls_segment_filename "{outdir_path}/%v_fileSequence%d.ts" \
              -hls_playlist_type vod \
               {outdir_path}/%v_prog_index.m3u8'''

        process = subprocess.Popen(cmd)
        stdout, stderr = process.communicate()
        upload_local_directory_to_gcs(outdir_path, upload_bucket, input_filename)
    except Exception as e:
        print(e)


    


    The problem is that I get an error :

    


    [Errno 2] No such file or directory: 'ffmpeg -y -i /tmp/video -preset ultrafast -g 60 -sc_threshold 0 -map 0:0 -map 0:1 -map 0:0 -map 0:1 -s:v:0 360x640 -c:v:0 libx264 -b:v:0 365k -s:v:1 720x1280 -c:v:1 libx264 -b:v:1 3000k -c:a copy -var_stream_map "v:0,a:0 v:1,a:1" -master_pl_name master.m3u8 -f hls -hls_time 6 -hls_list_size 0 -hls_segment_filename "/tmp/output/video/%v_fileSequence%d.ts" -hls_playlist_type vod /tmp/output/video/%v_prog_index.m3u8': 'ffmpeg -y -i /tmp/video -preset ultrafast -g 60 -sc_threshold 0 -map 0:0 -map 0:1 -map 0:0 -map 0:1 -s:v:0 360x640 -c:v:0 libx264 -b:v:0 365k -s:v:1 720x1280 -c:v:1 libx264 -b:v:1 3000k -c:a copy -var_stream_map "v:0,a:0 v:1,a:1" -master_pl_name master.m3u8 -f hls -hls_time 6 -hls_list_size 0 -hls_segment_filename "/tmp/output/video/%v_fileSequence%d.ts" -hls_playlist_type vod /tmp/output/video/%v_prog_index.m3u8'


    


    But I know that the input files and the output files do exist because I debugged that using print(os.listdir(path)) so now I am wondering if the FFmpeg I call with subprocess has access to the /tmp folder..?

    


    I know that there is a Python FFmpeg library I could use, but I don't know how to run my FFmpeg command using that library. Can you help ?

    


    p.s. I can run this locally with success.

    


  • FFMPEG - Video micro stutters at merge point after cutting a 1 second segment, adding fade effect to it and concatenating it back

    9 septembre 2023, par john

    So i've been using Losslesscut (it uses FFMPEG) to edit videos, but because this program doesn't have any option for fade in/out effects, I came up with this method where i cut a 1 second segment before and after every cut I would do to the video, and then I run a batch FFMPEG command that adds fade in/out effect too all 1 second segments, and then I run another batch command to concat all parts.

    


    What all this does is it keeps 99% of the video lossless, only reencoding the 1 second segments for the fade effect.

    


    The problem is each 1 second segment that gets merged back creates a micro stuttering at the merge point. And because it's a lot of segments, the video ends up with lots of micro stuttering throughout. It's nothing crazy but definetly noticeable.

    


    I believe the issue is probably caused by imprecision on the cuts made on Losslesscut (I mean, it's just using FFMPEG keyframe cut, my videos have 1 keyframe per second). The 1 second segments end up with 61, 62, or even 63 frames (the video is 60fps). Although if, for testing purposes, I merge the 1 segment without reencoding it, there is no stutter.

    


    I think the reencode further messes with the time / frames of the video, might be adding an additional frame or extra miliseconds, even tho the fade duration is 1 second.

    


    Wondering if anyone can think of something that would make the merging smooth and get rid of the stutter ?

    


    These are the fade effect and the concat command I'm using :

    


    ffmpeg -i "input" -vf "fade=t=in:st=0:d=1" -c:v h264_nvenc -profile:v high -rc constqp -qp 14 -c:a copy -video_track_timescale 90000 "output"

ffmpeg -f concat -safe 0 -i "FILELIST.TXT" -c copy "output"


    


    I also tested doing the cutting via FFMPEG directly, and still got the after merging the fade clips.

    


    Guessing it won't be possible to fix this, since it's merging a reencoded clip with a lossless one. Who knows tho.

    


    Thanks in advance.