Recherche avancée

Médias (91)

Autres articles (111)

  • Script d’installation automatique de MediaSPIP

    25 avril 2011, par

    Afin de palier aux difficultés d’installation dues principalement aux dépendances logicielles coté serveur, un script d’installation "tout en un" en bash a été créé afin de faciliter cette étape sur un serveur doté d’une distribution Linux compatible.
    Vous devez bénéficier d’un accès SSH à votre serveur et d’un compte "root" afin de l’utiliser, ce qui permettra d’installer les dépendances. Contactez votre hébergeur si vous ne disposez pas de cela.
    La documentation de l’utilisation du script d’installation (...)

  • Ajouter des informations spécifiques aux utilisateurs et autres modifications de comportement liées aux auteurs

    12 avril 2011, par

    La manière la plus simple d’ajouter des informations aux auteurs est d’installer le plugin Inscription3. Il permet également de modifier certains comportements liés aux utilisateurs (référez-vous à sa documentation pour plus d’informations).
    Il est également possible d’ajouter des champs aux auteurs en installant les plugins champs extras 2 et Interface pour champs extras.

  • Librairies et binaires spécifiques au traitement vidéo et sonore

    31 janvier 2010, par

    Les logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
    Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
    Binaires complémentaires et facultatifs flvtool2 : (...)

Sur d’autres sites (8970)

  • What's the purpose of the END field in files containing metadata for ffmpeg ?

    15 juillet 2023, par rdrg109

    Table of contents

    


      

    • The context
    • 


    • Minimal working example

        

      • no. 1
      • 


      • no. 2
      • 


      • no. 3
      • 


      


    • 


    • The questions
    • 


    


    


    The context

    


    I'm aware that it is possible to insert metadata of chapters into a video using ffmpeg (link to documentation). Minimal working example no. 1 shows this point.

    


    When I insert chapters that are not consecutive, ffmpeg doesn't use the end time that is specified in the metadata file through the END field. "Minimal working example no. 2" shows this point. In "Minimal working example no. 3", the END field of all chapters is 1 millisecond, yet we get the same result of Minimal working example no. 2. What is worth noting is that the END of the last chapter is the only one that is added correctly.

    


    


    Minimal working example

    


    


    no. 1

    


    Consider the following ffmpeg metadata file. It creates chapters in the following time ranges

    


      

    • From 0 to millisecond 9999, the chapter is This is my chapter one
    • 


    • From 10000 to millisecond 19999, the chapter is This is my chapter two
    • 


    • From 20000 to millisecond 29999, the chapter is This is my chapter three
    • 


    • From 30000 to millisecond 39999, the chapter is This is my chapter four
    • 


    


    ;FFMETADATA1
title=The title of my video

[CHAPTER]
TIMEBASE=1/1000
START=0
END=10000
title=This is my chapter one

[CHAPTER]
TIMEBASE=1/1000
START=10000
END=20000
title=This is my chapter two

[CHAPTER]
TIMEBASE=1/1000
START=20000
END=30000
title=This is my chapter three


    


    The following command creates a simple video and inserts the metadata shown above into that video.

    


    ffmpeg -v error -y -f lavfi -i 'testsrc=d=120:size=100x100' -i metadata.txt -map_metadata 1 output.mp4


    


    The following command shows information about the metadata in the video file that was created by the previous command.

    


    ffprobe -v error -show_chapters -print_format json output.mp4 | jq


    


    {
  "chapters": [
    {
      "id": 0,
      "time_base": "1/1000",
      "start": 0,
      "start_time": "0.000000",
      "end": 10000,
      "end_time": "10.000000",
      "tags": {
        "title": "This is my chapter one"
      }
    },
    {
      "id": 1,
      "time_base": "1/1000",
      "start": 10000,
      "start_time": "10.000000",
      "end": 20000,
      "end_time": "20.000000",
      "tags": {
        "title": "This is my chapter two"
      }
    },
    {
      "id": 2,
      "time_base": "1/1000",
      "start": 20000,
      "start_time": "20.000000",
      "end": 30000,
      "end_time": "30.000000",
      "tags": {
        "title": "This is my chapter three"
      }
    }
  ]
}


    


    No problem until here.

    


    


    no. 2

    


    ;FFMETADATA1
title=The title of my video

[CHAPTER]
TIMEBASE=1/1000
START=0
END=5000
title=This is my chapter one

[CHAPTER]
TIMEBASE=1/1000
START=10000
END=15000
title=This is my chapter two

[CHAPTER]
TIMEBASE=1/1000
START=20000
END=25000
title=This is my chapter three


    


    The following command creates a simple video and inserts the metadata shown above into that video.

    


    ffmpeg -v error -y -f lavfi -i 'testsrc=d=120:size=100x100' -i metadata.txt -map_metadata 1 output.mp4


    


    The following command shows information about the metadata in the video file that was created by the previous command.

    


    ffprobe -v error -show_chapters -print_format json output.mp4 | jq


    


    {
  "chapters": [
    {
      "id": 0,
      "time_base": "1/1000",
      "start": 0,
      "start_time": "0.000000",
      "end": 10000,
      "end_time": "10.000000",
      "tags": {
        "title": "This is my chapter one"
      }
    },
    {
      "id": 1,
      "time_base": "1/1000",
      "start": 10000,
      "start_time": "10.000000",
      "end": 20000,
      "end_time": "20.000000",
      "tags": {
        "title": "This is my chapter two"
      }
    },
    {
      "id": 2,
      "time_base": "1/1000",
      "start": 20000,
      "start_time": "20.000000",
      "end": 25000,
      "end_time": "25.000000",
      "tags": {
        "title": "This is my chapter three"
      }
    }
  ]
}


    


    From the output above, we can notice the following :

    


      

    • The end time of the chapter with title This is my chapter one is 10000 which should be 15000, since that is the value we specified in the END field
    • 


    • The end time of the chapter with title This is my chapter two is 20000 which should be 25000, since that is the value we specified in the END field
    • 


    • The end time of the last chapter is the only one that is the same to the value that we wrote in the metadata file
    • 


    


    I consider this unexpected behavior because ffmpeg should use the end time that we have specified in the metadata file.

    


    


    no. 3

    


    ;FFMETADATA1
title=The title of my video

[CHAPTER]
TIMEBASE=1/1000
START=0
END=1
title=This is my chapter one

[CHAPTER]
TIMEBASE=1/1000
START=10000
END=10001
title=This is my chapter two

[CHAPTER]
TIMEBASE=1/1000
START=20000
END=20001
title=This is my chapter three


    


    The following command creates a simple video and inserts the metadata shown above into that video.

    


    ffmpeg -v error -y -f lavfi -i 'testsrc=d=120:size=100x100' -i metadata.txt -map_metadata 1 output.mp4


    


    The following command shows information about the metadata in the video file that was created by the previous command.

    


    ffprobe -v error -show_chapters -print_format json output.mp4 | jq


    


    {
  "chapters": [
    {
      "id": 0,
      "time_base": "1/1000",
      "start": 0,
      "start_time": "0.000000",
      "end": 10000,
      "end_time": "10.000000",
      "tags": {
        "title": "This is my chapter one"
      }
    },
    {
      "id": 1,
      "time_base": "1/1000",
      "start": 10000,
      "start_time": "10.000000",
      "end": 20000,
      "end_time": "20.000000",
      "tags": {
        "title": "This is my chapter two"
      }
    },
    {
      "id": 2,
      "time_base": "1/1000",
      "start": 20000,
      "start_time": "20.000000",
      "end": 20001,
      "end_time": "20.001000",
      "tags": {
        "title": "This is my chapter three"
      }
    }
  ]
}


    


    From the output above, we can notice the following :

    


      

    • The end time of the chapter with title This is my chapter one is 10000, but it should be 15000, since that is the value we specified in the END field in the metadata file
    • 


    • The end time of the chapter with title This is my chapter two is 20000, but it should be 25000, since that is the value we specified in the END field in the metadata file
    • 


    • The end time of the last chapter is the only one that is the same to the value that we wrote in the metadata file
    • 


    


    I consider this unexpected behavior because ffmpeg should use the end time that we have specified in the metadata file.

    


    


    The questions

    


    In minimal working example no. 2 and minimal working example no. 3, we could see that although the metadata file sets END for each chapter, a different time is used (except for the last chapter). My questions are :

    


      

    • What's the purpose of having a field called END when it only serves a purpose in the last chapter ?
    • 


    • Given that ffmpeg only adds the correct value for END for the last chapter ? Wouldn't a better name for END be END_ONLY_FOR_LAST_CHAPTER ?
    • 


    • Am I doing something wrong that is casuing ffmpeg to use a different value for END in all chapters but the last one ?
    • 


    


  • Anomalie #3418 (Fermé) : Les tables des plugins ne s’installent pas

    10 mai 2015, par cedric -

    Correctif reporté en 3.0 (r22122 r22123 r22124), 2.1 (r22126) et 2.0 (r22127)

  • FFmpeg shrink file size without loss [closed]

    22 mars 2021, par Frederik

    Is there a way to detect how the video res really is ? I have a bunge of videos that are rendered on a higher frame rate and and higher resolution than they really have ? Is there a way to detect what's the actual video res and fps are and shrink it to a minimal size without any quality loss ?