Recherche avancée

Médias (91)

Autres articles (75)

  • XMP PHP

    13 mai 2011, par

    Dixit Wikipedia, XMP signifie :
    Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
    Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
    XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 est la première version de MediaSPIP stable.
    Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

Sur d’autres sites (8847)

  • fluent-ffmpeg is having trouble setting creation_time (metadata) for mp4 video

    26 février 2023, par LycalopX

    So, basically, I have 2000 photos/videos that are, incorrectly, saved with random creation dates, and I wish to try and organize them. And, the solution I found was : getting the correct time through their name (they are already all named correctly), in the following format :

    


    YYMMDD HH:MM:SS

    


    That way, as I didn't want to go one by one writing all of the correct timestamps, I tried to change the metadata for all the files using javascript, and chose Fluent-FFMPeg for the job. I have ffmpeg installed on my computer, and I can successfully change the date of an MP4 file using the following command, in Windows Powershell (for that mp4 video) :

    


    ffmpeg -i 20150408_143303.mp4 -metadata creation_time="2015-05-08T17:33:03.000Z" newFile.mp4


    


    But, the code I wrote doesn't seem to work, at least to change the date of the file. I tested most of the metadata fields (author, title, etc.), and it seems to work fine with them, just not the Media Creation Date (creation_time).

    


    Here is the code, for reference :

    


        // node-module
    var ffmpeg = require('fluent-ffmpeg');

    // File location
    const filePath = './'
    var fileName = "20150408_143303.mp4"


    var year = fileName.slice(0, 4)
    var month = fileName.slice(4, 6)
    var day = fileName.slice(6, 8)
    var hours = fileName.slice(9, 11)
    var minutes = fileName.slice(11, 13)
    var seconds = fileName.slice(13, 15)

    var date = new Date(year, month, day, hours, minutes, seconds)

    //2015-05-08T17:33:03.000Z
    console.log(date)


    // First try (doesn't work)
    const file = filePath + fileName
    ffmpeg(file).inputOptions(`-metadata`, `title="Movie"`)


    // ffmpeg -i 20150408_143303.mp4 -metadata creation_time="2015-05-08T17:33:03.000Z" newFile.mp4

    // second try
    ffmpeg.ffprobe(file, function(err, metadata) {

        ffmpeg(file)
        .inputFormat('mp4')
        .outputOptions([`-metadata`, `creation_time=${date}`])
        .save('newFile.mp4')
        .on("progress", function(progress) {
            console.log("Processing: " + progress.timemark);
          })
          .on("error", function(err, stdout, stderr) {
            console.log("Cannot process video: " + err.message);
          })
          .on("end", function(stdout, stderr) {
            console.log((metadata.format.tags))
          })
        .run();

    })


    


    Console.log : https://imgur.com/a/gR93xLE

    There are no console errors, and everything seems to run smoothly, but the creation_time really does not change. Any idea as to why this is occurring is very welcome...

    


  • How to concatenate the ts files with ffmpeg and python and keep the silence between the video fragments

    2 mai 2022, par shapale

    Using python and ffmpeg, I'm attempting to generate a video using photos and audio files.
There should be 1 second of silence between each video fragment. I'm adding one second to the real duration of the audio to create the silence. To do that I use ffprobe to acquire the audio length. All of the fragment videos are produced in the expected manner. After that, I convert them to ts fragments and concatenate all of the ts fragments I've made. The problem is that the silence I added at the end of each video fragment is removed in the final video, and the final video silence is added at the end (approx 5 sec). How can I ensure that each video fragment remains silent during concatenation ?

    


    
from subprocess import call, check_output
import os

FFMPEG_NAME = 'ffmpeg'

def ffmpeg_call(image_path, audio_path, temp_path, i):
    out_path_mp4 = os.path.join(temp_path, f'frame_{i}.mp4')
    out_path_ts = os.path.join(temp_path, f'frame_{i}.ts')
    audio_duration = str(float(check_output(['ffprobe', '-v', 'error', '-show_entries', 'format=duration', '-of', 'default=noprint_wrappers=1:nokey=1', audio_path]).decode('utf-8')) + 1)
    call([FFMPEG_NAME, '-loop', '1', '-y', '-i', image_path, '-i', audio_path,
          '-c:v', 'libx264', '-c:a', 'aac',
          '-b:a', '192k', '-vf', 'crop=trunc(iw/2)*2:trunc(ih/2)*2', '-shortest', '-t', audio_duration, out_path_mp4])
    call([FFMPEG_NAME, '-y', '-i', out_path_mp4, '-c', 'copy',
          '-bsf:v', 'h264_mp4toannexb', '-f', 'mpegts', out_path_ts])


def ffmpeg_concat(video_list_str, out_path):
    call([FFMPEG_NAME, '-y', '-f', 'mpegts', '-i', f'{video_list_str}',
          '-c', 'copy', '-bsf:a', 'aac_adtstoasc', out_path])

def create_video(temp_dir_path, audio_paths_list):
    image_name = 'image_3.jpg'
    output_path = os.path.join(temp_dir_path, 'main.mp4')
    for idx, audio_path in enumerate(audio_paths_list):
        image_path = os.path.join(temp_dir_path, image_name)
        audio_path = os.path.join(temp_dir_path, audio_path)
        ffmpeg_call(image_path, audio_path, temp_dir_path, idx)

    video_list = [os.path.join(temp_dir_path, f'frame_{i}.ts') \
                  for i in range(len(audio_paths_list))]
    video_list_str = 'concat:' + '|'.join(video_list)
    ffmpeg_concat(video_list_str, output_path)



def main():
    temp_dir_path = '/var/folder/1'
    audio_list = ['audio1.mp3', 'audio2.mp3', 'audio3.mp3']
    create_video(temp_dir_path, audio_list)
    print('finished')


if __name__ == '__main__':
    main()


    


  • How to add a Poster Frame to an MP4 video by timecode ?

    25 mai 2020, par Crissov

    The mvhd atom or box of the original Quicktime MOV format supports a poster time variable for a timecode to use as a poster frame that can be used in preview scenarios as a thumbnail image or cover picture. As far as I can tell, the ISOBMFF-based MP4 format (.m4v) has inherited this feature, but I cannot find a way to set it using FFmpeg or MP4box or similar cross-platform CLI software. Edit : Actually, neither ISOBMFF nor MP4 imports this feature from MOV. Is there any other way to achieve this, e.g. using something like HEIFʼs derived images with a thmb (see Amendment 2) role ?

    



    <code width='202' height='300' / class='spip_code' dir='ltr'>mvhd</code> box layout

    &#xA;&#xA;

    The original Apple Quicktime (Pro) editor did have a menu option for doing just that. (Apple Compressor and Photos could do it, too).

    &#xA;&#xA;

    Quicktime menu

    &#xA;&#xA;

    To be clear, I do not want to attach a separate image file, which could possibly be a screenshot grabbed from a movie still, as a separate track to the multimedia container. I know how to do that :

    &#xA;&#xA;

    &#xA;&#xA;

    I also know that some people used to copy the designated poster frame from its original position to the very first frame, but many automatically generated previews use a later time index, e.g. from 10 seconds, 30 seconds, 10% or 50% into the video stream.

    &#xA;