Recherche avancée

Médias (1)

Mot : - Tags -/stallman

Autres articles (53)

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

  • Revision 7ce52feafcff388da2b9dc59ec19b443580f3472 : Le squelette de création/modification d’un auteur prenait mal en compte la ...

    17 février 2010, par Committo,Ergo:sum — Log

    Le squelette de création/modification d’un auteur prenait mal en compte la source du login : ce n’est pas forcément la présence d’un LDAP accessible qui doit déterminer si le login est modifiable ou non, et un tel test n’est pas à faire au niveau du squelette, mais de la fonction (...)

  • Anomalie #3005 (Fermé) : Lien "forgotten password" / "mot de passe oublié" formulaire #LOGIN_PUBLI...

    17 mai 2013, par Guillaume Fahrner

    Le lien "forgotten password" / "mot de passe oublié" présent dans le formulaire #LOGIN_PUBLIC ne prend pas en compte la langue dans laquelle le formulaire est affiché. Exemples avec des formulaires de login affiché en anglais, contenant le lien "incorrect" qui abouti sur un formulaire en francais :

    http://www.root-me.org/spip.php?page=login&lang=en => lien affiché : http://www.root-me.org/spip.php?page=spip_pass
    http://contrib.spip.net/?page=login&lang=en => lien affiché : http://contrib.spip.net//spip.php?page=spip_pass

  • Getting Error message Unknown encoder 'libx264' , any help appreciated

    16 janvier 2022, par Alex.Foster

    I am trying to compress videos files to a target size within python using ffmpeg-python for an A level project as part of my coursework, I keep getting this error saying it doesn't know the encoder. Not sure what I'm meant to do as this is literally an entirely new space to me. Am I meant to have installed the codec or something, or is there an alternative I can use ?

    


    import os, ffmpeg
##import section:this part is where I import all of the modules I will use
import  tkinter
import shutil
from tkinter import filedialog
import os


def fileSelect():                                                                           #start of fileSelect function
    global startingLocation                                                                 #declares startingLocation as global variable
    global originalName                                                                     #declares originalName as global variable
    global fileType                                                                         #declares fileType as global variable
    startingLocation = filedialog.askopenfilename(initialdir="/", title="Select file",      #tkinter function that opens file explorer, lets user select file saves the file path as a variable
                    filetypes=(("video files", "*.mp4"),("images", "*.jpg*")))
    originalName = os.path.basename(startingLocation)                                       #os function that gets the actaul file name from the path string
    print (originalName)                                                                    #print statement to check if originalName has been found
    fileType = startingLocation.split('.')                                                  #splits original name where any full stop in found and saves array as variable
    fileType = fileType[-1]                                                                 #changes variable to have the str value of the final item in the array; the file type
    fileType = '.' + fileType                                                               #adds fullstop to the start of the file type so i dont have to repeatedly do it
    print (fileType)                                                                        #print statement to check file type is found correctly

def outputSelect():                                                                         #start of outputSelect function
     global outputLocation                                                                  #declares outputLocation as global variable
     outputLocation = filedialog.askdirectory(initialdir="/", title="Select folder")        #tkinter function that opens file explorer, lets the user select of folder as saves the folder path as a variable

def fileNewName():                                                                          #start of fileNewName function
    global customName                                                                       #declares customName as global variable
    customName = input("Enter the end name of your file")                                   #simple code assigning user input to the custom name vairable
    customName = customName + fileType                                                      #add the fileType onto the end of the custom name

def compress():                                                                             #start of compress function
    fileSelect()                                                                            #calls the fileSelect function
    outputSelect()                                                                          #calls the outputSelect function
    fileNewName()
    global src
    global dst                                                                           #calls the fileNewName function
    src = startingLocation                                                                  #assigns startingLocation str as src, so the shutil module is able to use it in a cleaner way
    dst = outputLocation                                                                    #assigns outputLocation dst as src, so the shutil module is able to use it in a cleaner way
    shutil.copy(src, dst)                                                                   #shutil command that copies the file from src to dst
    src = outputLocation + '/' + originalName                                               #reassigns src as the location of the file copy
    dst = outputLocation + '/' + customName                                                 #reassigns dst as the location of the file copy but with a new name
    shutil.move(src,dst)


def compress_video(video_full_path, output_file_name, target_size):
    # Reference: https://en.wikipedia.org/wiki/Bit_rate#Encoding_bit_rate
    min_audio_bitrate = 32000
    max_audio_bitrate = 256000

    probe = ffmpeg.probe(video_full_path)
    # Video duration, in s.
    duration = float(probe['format']['duration'])
    # Audio bitrate, in bps.
    audio_bitrate = float(next((s for s in probe['streams'] if s['codec_type'] == 'audio'), None)['bit_rate'])
    # Target total bitrate, in bps.
    target_total_bitrate = (target_size * 1024 * 8) / (1.073741824 * duration)

    # Target audio bitrate, in bps
    if 10 * audio_bitrate > target_total_bitrate:
        audio_bitrate = target_total_bitrate / 10
        if audio_bitrate < min_audio_bitrate < target_total_bitrate:
            audio_bitrate = min_audio_bitrate
        elif audio_bitrate > max_audio_bitrate:
            audio_bitrate = max_audio_bitrate
    # Target video bitrate, in bps.
    video_bitrate = target_total_bitrate - audio_bitrate

    i = ffmpeg.input(video_full_path)
    ffmpeg.output(i, os.devnull,
                  **{'c:v': 'libx264', 'b:v': video_bitrate, 'pass': 1, 'f': 'mp4'}
                  ).overwrite_output().run()
    ffmpeg.output(i, output_file_name,
                  **{'c:v': 'libx264', 'b:v': video_bitrate, 'pass': 2, 'c:a': 'aac', 'b:a': audio_bitrate}
                  ).overwrite_output().run()

compress()
compress_video(dst, outputLocation, 3 * 1000)