
Recherche avancée
Autres articles (68)
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains 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 ;
-
Initialisation de MediaSPIP (préconfiguration)
20 février 2010, parLors de l’installation de MediaSPIP, celui-ci est préconfiguré pour les usages les plus fréquents.
Cette préconfiguration est réalisée par un plugin activé par défaut et non désactivable appelé MediaSPIP Init.
Ce plugin sert à préconfigurer de manière correcte chaque instance de MediaSPIP. Il doit donc être placé dans le dossier plugins-dist/ du site ou de la ferme pour être installé par défaut avant de pouvoir utiliser le site.
Dans un premier temps il active ou désactive des options de SPIP qui ne le (...) -
Ecrire une actualité
21 juin 2013, parPrésentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
Vous pouvez personnaliser le formulaire de création d’une actualité.
Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)
Sur d’autres sites (5154)
-
FFmpeg shrink file size without loss [closed]
22 mars 2021, par FrederikIs 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 ?


-
Anomalie #3418 (Fermé) : Les tables des plugins ne s’installent pas
10 mai 2015, par cedric - -
What's the purpose of the END field in files containing metadata for ffmpeg ?
15 juillet 2023, par rdrg109Table 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", theEND
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 theEND
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 millisecond9999
, the chapter isThis is my chapter one
- From
10000
to millisecond19999
, the chapter isThis is my chapter two
- From
20000
to millisecond29999
, the chapter isThis is my chapter three
- From
30000
to millisecond39999
, the chapter isThis 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 theEND
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 theEND
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
is10000
, but it should be15000
, since that is the value we specified in theEND
field in the metadata file - The end time of the chapter with title
This is my chapter two
is20000
, but it should be25000
, since that is the value we specified in theEND
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 forEND
for the last chapter ? Wouldn't a better name forEND
beEND_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 ?