
Recherche avancée
Médias (1)
-
Bug de détection d’ogg
22 mars 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Video
Autres articles (71)
-
Organiser par catégorie
17 mai 2013, parDans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...) -
Récupération d’informations sur le site maître à l’installation d’une instance
26 novembre 2010, parUtilité
Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...) -
Le plugin : Podcasts.
14 juillet 2010, parLe problème du podcasting est à nouveau un problème révélateur de la normalisation des transports de données sur Internet.
Deux formats intéressants existent : Celui développé par Apple, très axé sur l’utilisation d’iTunes dont la SPEC est ici ; Le format "Media RSS Module" qui est plus "libre" notamment soutenu par Yahoo et le logiciel Miro ;
Types de fichiers supportés dans les flux
Le format d’Apple n’autorise que les formats suivants dans ses flux : .mp3 audio/mpeg .m4a audio/x-m4a .mp4 (...)
Sur d’autres sites (4390)
-
avcodec/ac3dec : Use frame_size if superframe_size is 0
18 mai 2018, par Michael Niedermayeravcodec/ac3dec : Use frame_size if superframe_size is 0
Fixes : Infinite loop
Fixes : 7669/clusterfuzz-testcase-ffmpeg_AV_CODEC_ID_AC3_FIXED_fuzzer-4689042185650176
Fixes : 7670/clusterfuzz-testcase-ffmpeg_AV_CODEC_ID_AC3_fuzzer-4706306762997760
Fixes : 7672/clusterfuzz-testcase-ffmpeg_AV_CODEC_ID_EAC3_fuzzer-4702108499574784Found-by : continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by : Michael Niedermayer <michael@niedermayer.cc> -
Revision 96419 : La librairie en version 1.9.2 v1.9.12 Add support for Direct Stream ...
11 juin 2018, par kent1@… — LogLa librairie en version 1.9.2
v1.9.12
Add support for Direct Stream Digital (DSD) / DSD Storage Facility (DSF) file format
Add detection (not parsing) of WebP image format
bugfix #1910 : Quicktime embedded images
v1.9.11
#64 - update constructor syntax for PHP 7
#62 - infinite loop in large PNG files
#61 - ID3v2 remove BOM from frame descriptions
#60 - missing "break" in module.audio-video.quicktime.php
#59 - .gitignore comments
#58 - inconsistency in relation to module.tag.id3v2.php
#57 - comparing instead of assign
#56 - unsupported MIME type "audio/x-wave"
#55 - readme.md variable reference
#54 - QuickTime ? false 1000fps
#53 - Quicktime / ID3v2 multiple genres
#52 - sys_get_temp_dir in GetDataImageSize ?
demo.joinmp3.php enhancements
m4b (audiobook) chapters not parsed correctly
sqlite3 caching not working
bugfix #1903 - Quicktime meta atom not parsed -
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 ?