
Recherche avancée
Autres articles (52)
-
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
The zip file provided here only contains the sources of MediaSPIP in its standalone version.
To get a working installation, you must manually install all-software dependencies on the server.
If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...) -
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Pour avoir une installation fonctionnelle, 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 (...) -
Amélioration de la version de base
13 septembre 2013Jolie 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 (...)
Sur d’autres sites (7816)
-
Ffmpeg - Reading header information takes too long
13 mars 2023, par Md YeaminI am using ffmpeg-kit to encode videos on android devices. For some files ffmpeg takes too long to read the header information. This issue happens very randomly. Sometime the execution completes within 1 or 2 seconds, sometime it takes longer than 10 seconds to complete, for the file linked below.


I have build ffmpeg to log some additional info to figure out the root cause. There is a 10s gap between the log output at
15:17:02.276
and15:17:12.909
(added a separator for quick find). After completion of themov_read_ftyp
there is a long delay before themov_read_dref
method starts the execution. Is there any other method that executed in between and could take this much long time to complete the execution ? What could be the reason behind the delay ?

Here is detailed log about the issue.


Log :


2023-03-12 15:17:02.096 :: ffmpeg-kit-debug: execute:
2023-03-12 15:17:02.116 :: ffmpeg-kit-debug: LogCallback: setjmp
2023-03-12 15:17:02.120 :: ffmpeg-kit-debug: LogCallback: setjmp done
2023-03-12 15:17:02.124 :: ffmpeg-kit-debug: LogCallback: ffmpeg_var_cleanup
2023-03-12 15:17:02.127 :: ffmpeg-kit-debug: LogCallback: ffmpeg_var_cleanup done
2023-03-12 15:17:02.132 :: ffmpeg-kit-debug: LogCallback: init_dynload
2023-03-12 15:17:02.135 :: ffmpeg-kit-debug: LogCallback: init_dynload done
2023-03-12 15:17:02.137 :: ffmpeg-kit-debug: LogCallback: register_exit
2023-03-12 15:17:02.141 :: ffmpeg-kit-debug: LogCallback: register_exit done
2023-03-12 15:17:02.144 :: ffmpeg-kit-debug: LogCallback: avdevice_register_all
2023-03-12 15:17:02.151 :: ffmpeg-kit-debug: LogCallback: avdevice_register_all done
2023-03-12 15:17:02.155 :: ffmpeg-kit-debug: LogCallback: avformat_network_init
2023-03-12 15:17:02.159 :: ffmpeg-kit-debug: LogCallback: avformat_network_init done
2023-03-12 15:17:02.163 :: ffmpeg-kit-debug: LogCallback: show_banner
2023-03-12 15:17:02.165 :: ffmpeg-kit-debug: LogCallback: show_banner done
2023-03-12 15:17:02.169 :: ffmpeg-kit-debug: LogCallback: ffmpeg_parse_options
2023-03-12 15:17:02.172 :: ffmpeg-kit-debug: LogCallback: allocating memory
2023-03-12 15:17:02.176 :: ffmpeg-kit-debug: LogCallback: split_commandline
2023-03-12 15:17:02.179 :: ffmpeg-kit-debug: LogCallback: Splitting the commandline.

2023-03-12 15:17:02.182 :: ffmpeg-kit-debug: LogCallback: Reading option '-hide_banner' ...
2023-03-12 15:17:02.184 :: ffmpeg-kit-debug: LogCallback: matched as option 'hide_banner' (do not show program banner) with argument '1'.

2023-03-12 15:17:02.187 :: ffmpeg-kit-debug: LogCallback: Reading option '-y' ...
2023-03-12 15:17:02.189 :: ffmpeg-kit-debug: LogCallback: matched as option 'y' (overwrite output files) with argument '1'.

2023-03-12 15:17:02.193 :: ffmpeg-kit-debug: LogCallback: Reading option '-i' ...
2023-03-12 15:17:02.197 :: ffmpeg-kit-debug: LogCallback: matched as input url with argument 'saf:6.MP4'.

2023-03-12 15:17:02.199 :: ffmpeg-kit-debug: LogCallback: Finished splitting the commandline.

2023-03-12 15:17:02.202 :: ffmpeg-kit-debug: LogCallback: split_commandline done
2023-03-12 15:17:02.203 :: ffmpeg-kit-debug: LogCallback: parse_optgroup
2023-03-12 15:17:02.205 :: ffmpeg-kit-debug: LogCallback: Parsing a group of options: global .

2023-03-12 15:17:02.207 :: ffmpeg-kit-debug: LogCallback: Applying option hide_banner (do not show program banner) with argument 1.

2023-03-12 15:17:02.210 :: ffmpeg-kit-debug: LogCallback: Applying option y (overwrite output files) with argument 1.

2023-03-12 15:17:02.212 :: ffmpeg-kit-debug: LogCallback: Successfully parsed a group of options.

2023-03-12 15:17:02.217 :: ffmpeg-kit-debug: LogCallback: parse_optgroup done
2023-03-12 15:17:02.220 :: ffmpeg-kit-debug: LogCallback: term_init
2023-03-12 15:17:02.224 :: ffmpeg-kit-debug: LogCallback: term_init done
2023-03-12 15:17:02.226 :: ffmpeg-kit-debug: LogCallback: open_files INPUT
2023-03-12 15:17:02.228 :: ffmpeg-kit-debug: LogCallback: Parsing a group of options: input url saf:6.MP4.

2023-03-12 15:17:02.232 :: ffmpeg-kit-debug: LogCallback: Successfully parsed a group of options.

2023-03-12 15:17:02.236 :: ffmpeg-kit-debug: LogCallback: Opening an input file: saf:6.MP4.

2023-03-12 15:17:02.239 :: ffmpeg-kit-debug: LogCallback: [NULL @ 0xb40000730dd9dbf0] Opening 'saf:6.MP4' for reading

2023-03-12 15:17:02.243 :: ffmpeg-kit-debug: LogCallback: [saf @ 0xb40000728de0ca10] Setting default whitelist 'saf,crypto,data'

2023-03-12 15:17:02.245 :: ffmpeg-kit-debug: LogCallback: fd_open start
2023-03-12 15:17:02.248 :: ffmpeg-kit-debug: LogCallback: fd_open opening
2023-03-12 15:17:02.252 :: ffmpeg-kit-debug: LogCallback: fd_open opened
2023-03-12 15:17:02.255 :: ffmpeg-kit-debug: LogCallback: mov_probe
2023-03-12 15:17:02.257 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=100

2023-03-12 15:17:02.260 :: ffmpeg-kit-debug: LogCallback: mov_read_header
2023-03-12 15:17:02.264 :: ffmpeg-kit-debug: LogCallback: mov_read_header seeking
2023-03-12 15:17:02.268 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] ISO: File Type Major Brand: mp41

2023-03-12 15:17:02.270 :: ffmpeg-kit-debug: LogCallback: mov_read_ftyp dict set
2023-03-12 15:17:02.273 :: ffmpeg-kit-debug: LogCallback: mov_read_ftyp mov_aaxc_crypto before
2023-03-12 15:17:02.276 :: ffmpeg-kit-debug: LogCallback: mov_read_ftyp mov_aaxc_crypto done
-----------------------------------------------------------------------------------------------
2023-03-12 15:17:12.909 :: ffmpeg-kit-debug: LogCallback: mov_read_dref started
2023-03-12 15:17:12.911 :: ffmpeg-kit-debug: LogCallback: mov_read_dref check entries
2023-03-12 15:17:12.915 :: ffmpeg-kit-debug: LogCallback: mov_read_dref drefs_count 0 
2023-03-12 15:17:12.918 :: ffmpeg-kit-debug: LogCallback: mov_read_dref av_free sc->drefs
2023-03-12 15:17:12.920 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] Unknown dref type 0x73696c61 size 12

2023-03-12 15:17:12.923 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] Processing st: 0, edit list 0 - media time: 0, duration: 39436397

2023-03-12 15:17:12.925 :: ffmpeg-kit-debug: LogCallback: mov_read_dref started
2023-03-12 15:17:12.931 :: ffmpeg-kit-debug: LogCallback: mov_read_dref check entries
2023-03-12 15:17:12.935 :: ffmpeg-kit-debug: LogCallback: mov_read_dref drefs_count 0 
2023-03-12 15:17:12.938 :: ffmpeg-kit-debug: LogCallback: mov_read_dref av_free sc->drefs
2023-03-12 15:17:12.945 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] Unknown dref type 0x73696c61 size 12

2023-03-12 15:17:12.951 :: ffmpeg-kit-debug: LogCallback: mov_read_dref started
2023-03-12 15:17:12.958 :: ffmpeg-kit-debug: LogCallback: mov_read_dref check entries
2023-03-12 15:17:12.965 :: ffmpeg-kit-debug: LogCallback: mov_read_dref drefs_count 0 
2023-03-12 15:17:12.971 :: ffmpeg-kit-debug: LogCallback: mov_read_dref av_free sc->drefs
2023-03-12 15:17:12.975 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] Unknown dref type 0x73696c61 size 12

2023-03-12 15:17:12.978 :: ffmpeg-kit-debug: LogCallback: mov_read_dref started
2023-03-12 15:17:12.985 :: ffmpeg-kit-debug: LogCallback: mov_read_dref check entries
2023-03-12 15:17:12.988 :: ffmpeg-kit-debug: LogCallback: mov_read_dref drefs_count 0 
2023-03-12 15:17:12.990 :: ffmpeg-kit-debug: LogCallback: mov_read_dref av_free sc->drefs
2023-03-12 15:17:12.992 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] Unknown dref type 0x73696c61 size 12

2023-03-12 15:17:12.994 :: ffmpeg-kit-debug: LogCallback: mov_read_dref started
2023-03-12 15:17:12.996 :: ffmpeg-kit-debug: LogCallback: mov_read_dref check entries
2023-03-12 15:17:12.997 :: ffmpeg-kit-debug: LogCallback: mov_read_dref drefs_count 0 
2023-03-12 15:17:12.999 :: ffmpeg-kit-debug: LogCallback: mov_read_dref av_free sc->drefs
2023-03-12 15:17:13.002 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] Unknown dref type 0x73696c61 size 12

2023-03-12 15:17:13.003 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] All samples in data stream index:id [4:5] have zero duration, stream set to be discarded by default. Override using AVStream->discard or -discard for ffmpeg command.

2023-03-12 15:17:13.006 :: ffmpeg-kit-debug: LogCallback: mov_read_header seek done
2023-03-12 15:17:13.008 :: ffmpeg-kit-debug: LogCallback: mov_read_header parse done
2023-03-12 15:17:13.010 :: ffmpeg-kit-debug: LogCallback: mov_read_header trex data read done
2023-03-12 15:17:13.011 :: ffmpeg-kit-debug: LogCallback: mov_read_header bitrate calculation code
2023-03-12 15:17:13.013 :: ffmpeg-kit-debug: LogCallback: mov_read_header fps calculation done
2023-03-12 15:17:13.015 :: ffmpeg-kit-debug: LogCallback: mov_read_header read side data done
2023-03-12 15:17:13.017 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] Before avformat_find_stream_info() pos: 3720541874 bytes read:3720541874 seeks:0 nb_streams:5

2023-03-12 15:17:13.019 :: ffmpeg-kit-debug: LogCallback: [h264 @ 0xb40000731df00bc0] nal_unit_type: 7(SPS), nal_ref_idc: 1

2023-03-12 15:17:13.022 :: ffmpeg-kit-debug: LogCallback: [h264 @ 0xb40000731df00bc0] nal_unit_type: 8(PPS), nal_ref_idc: 1

2023-03-12 15:17:13.024 :: ffmpeg-kit-debug: LogCallback: fd_seek start
2023-03-12 15:17:13.028 :: ffmpeg-kit-debug: LogCallback: fd_seek seeking
2023-03-12 15:17:13.030 :: ffmpeg-kit-debug: LogCallback: fd_seek seek done
2023-03-12 15:17:13.033 :: ffmpeg-kit-debug: LogCallback: [h264 @ 0xb40000731df00bc0] nal_unit_type: 7(SPS), nal_ref_idc: 1

2023-03-12 15:17:13.035 :: ffmpeg-kit-debug: LogCallback: [h264 @ 0xb40000731df00bc0] nal_unit_type: 8(PPS), nal_ref_idc: 1

2023-03-12 15:17:13.038 :: ffmpeg-kit-debug: LogCallback: [h264 @ 0xb40000731df00bc0] nal_unit_type: 9(AUD), nal_ref_idc: 0

2023-03-12 15:17:13.042 :: ffmpeg-kit-debug: LogCallback: [h264 @ 0xb40000731df00bc0] nal_unit_type: 5(IDR), nal_ref_idc: 1

2023-03-12 15:17:13.047 :: ffmpeg-kit-debug: LogCallback: [h264 @ 0xb40000731df00bc0] Format yuvj420p chosen by get_format().

2023-03-12 15:17:13.059 :: ffmpeg-kit-debug: LogCallback: [h264 @ 0xb40000731df00bc0] Reinit context to 1920x1088, pix_fmt: yuvj420p

2023-03-12 15:17:13.066 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] All info found

2023-03-12 15:17:13.071 :: ffmpeg-kit-debug: LogCallback: fd_seek start
2023-03-12 15:17:13.075 :: ffmpeg-kit-debug: LogCallback: fd_seek size check error
2023-03-12 15:17:13.077 :: ffmpeg-kit-debug: LogCallback: fd_seek start
2023-03-12 15:17:13.081 :: ffmpeg-kit-debug: LogCallback: fd_seek size check error
2023-03-12 15:17:13.087 :: ffmpeg-kit-debug: LogCallback: fd_seek start
2023-03-12 15:17:13.090 :: ffmpeg-kit-debug: LogCallback: fd_seek size check error
2023-03-12 15:17:13.093 :: ffmpeg-kit-debug: LogCallback: [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb40000730dd9dbf0] After avformat_find_stream_info() pos: 323745 bytes read:3720930284 seeks:1 frames:3

2023-03-12 15:17:13.096 :: ffmpeg-kit-debug: LogCallback: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'saf:6.MP4':

2023-03-12 15:17:13.099 :: ffmpeg-kit-debug: LogCallback: Metadata:

2023-03-12 15:17:13.102 :: ffmpeg-kit-debug: LogCallback: major_brand : 
2023-03-12 15:17:13.108 :: ffmpeg-kit-debug: LogCallback: mp41
2023-03-12 15:17:13.110 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.113 :: ffmpeg-kit-debug: LogCallback: minor_version : 
2023-03-12 15:17:13.115 :: ffmpeg-kit-debug: LogCallback: 538120216
2023-03-12 15:17:13.119 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.121 :: ffmpeg-kit-debug: LogCallback: compatible_brands: 
2023-03-12 15:17:13.124 :: ffmpeg-kit-debug: LogCallback: mp41
2023-03-12 15:17:13.127 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.129 :: ffmpeg-kit-debug: LogCallback: creation_time : 
2023-03-12 15:17:13.132 :: ffmpeg-kit-debug: LogCallback: 2022-02-06T13:53:53.000000Z
2023-03-12 15:17:13.136 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.138 :: ffmpeg-kit-debug: LogCallback: firmware : 
2023-03-12 15:17:13.140 :: ffmpeg-kit-debug: LogCallback: HD9.01.01.60.00
2023-03-12 15:17:13.142 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.144 :: ffmpeg-kit-debug: LogCallback: Duration: 
2023-03-12 15:17:13.146 :: ffmpeg-kit-debug: LogCallback: 00:10:57.27
2023-03-12 15:17:13.149 :: ffmpeg-kit-debug: LogCallback: , start: 
2023-03-12 15:17:13.152 :: ffmpeg-kit-debug: LogCallback: 0.000000
2023-03-12 15:17:13.154 :: ffmpeg-kit-debug: LogCallback: , bitrate: 
2023-03-12 15:17:13.157 :: ffmpeg-kit-debug: LogCallback: 45284 kb/s
2023-03-12 15:17:13.159 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.161 :: ffmpeg-kit-debug: LogCallback: Chapters:

2023-03-12 15:17:13.164 :: ffmpeg-kit-debug: LogCallback: Chapter #0:0: 
2023-03-12 15:17:13.166 :: ffmpeg-kit-debug: LogCallback: start 619.735000, 
2023-03-12 15:17:13.169 :: ffmpeg-kit-debug: LogCallback: end 657.273000

2023-03-12 15:17:13.171 :: ffmpeg-kit-debug: LogCallback: Stream #0:0
2023-03-12 15:17:13.174 :: ffmpeg-kit-debug: LogCallback: [0x1]
2023-03-12 15:17:13.175 :: ffmpeg-kit-debug: LogCallback: (eng)
2023-03-12 15:17:13.177 :: ffmpeg-kit-debug: LogCallback: , 1, 1/60000
2023-03-12 15:17:13.182 :: ffmpeg-kit-debug: LogCallback: : Video: h264, 1 reference frame (avc1 / 0x31637661), yuvj420p(pc, bt709, progressive, left), 1920x1080 (1920x1088) [SAR 1:1 DAR 16:9], 0/1, 45005 kb/s
2023-03-12 15:17:13.185 :: ffmpeg-kit-debug: LogCallback: , 
2023-03-12 15:17:13.189 :: ffmpeg-kit-debug: LogCallback: 59.94 fps, 
2023-03-12 15:17:13.192 :: ffmpeg-kit-debug: LogCallback: 59.94 tbr, 
2023-03-12 15:17:13.194 :: ffmpeg-kit-debug: LogCallback: 60k tbn
2023-03-12 15:17:13.197 :: ffmpeg-kit-debug: LogCallback: (default)
2023-03-12 15:17:13.199 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.200 :: ffmpeg-kit-debug: LogCallback: Metadata:

2023-03-12 15:17:13.203 :: ffmpeg-kit-debug: LogCallback: creation_time : 
2023-03-12 15:17:13.204 :: ffmpeg-kit-debug: LogCallback: 2022-02-06T13:53:53.000000Z
2023-03-12 15:17:13.206 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.209 :: ffmpeg-kit-debug: LogCallback: handler_name : 
2023-03-12 15:17:13.211 :: ffmpeg-kit-debug: LogCallback: GoPro AVC 
2023-03-12 15:17:13.213 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.216 :: ffmpeg-kit-debug: LogCallback: vendor_id : 
2023-03-12 15:17:13.219 :: ffmpeg-kit-debug: LogCallback: [0][0][0][0]
2023-03-12 15:17:13.220 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.223 :: ffmpeg-kit-debug: LogCallback: encoder : 
2023-03-12 15:17:13.225 :: ffmpeg-kit-debug: LogCallback: GoPro AVC encoder
2023-03-12 15:17:13.227 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.229 :: ffmpeg-kit-debug: LogCallback: Stream #0:1
2023-03-12 15:17:13.231 :: ffmpeg-kit-debug: LogCallback: [0x2]
2023-03-12 15:17:13.233 :: ffmpeg-kit-debug: LogCallback: (eng)
2023-03-12 15:17:13.236 :: ffmpeg-kit-debug: LogCallback: , 1, 1/48000
2023-03-12 15:17:13.238 :: ffmpeg-kit-debug: LogCallback: : Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 189 kb/s
2023-03-12 15:17:13.240 :: ffmpeg-kit-debug: LogCallback: (default)
2023-03-12 15:17:13.243 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.244 :: ffmpeg-kit-debug: LogCallback: Metadata:

2023-03-12 15:17:13.247 :: ffmpeg-kit-debug: LogCallback: creation_time : 
2023-03-12 15:17:13.252 :: ffmpeg-kit-debug: LogCallback: 2022-02-06T13:53:53.000000Z
2023-03-12 15:17:13.255 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.257 :: ffmpeg-kit-debug: LogCallback: handler_name : 
2023-03-12 15:17:13.259 :: ffmpeg-kit-debug: LogCallback: GoPro AAC 
2023-03-12 15:17:13.262 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.264 :: ffmpeg-kit-debug: LogCallback: vendor_id : 
2023-03-12 15:17:13.268 :: ffmpeg-kit-debug: LogCallback: [0][0][0][0]
2023-03-12 15:17:13.271 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.274 :: ffmpeg-kit-debug: LogCallback: Stream #0:2
2023-03-12 15:17:13.276 :: ffmpeg-kit-debug: LogCallback: [0x3]
2023-03-12 15:17:13.278 :: ffmpeg-kit-debug: LogCallback: (eng)
2023-03-12 15:17:13.280 :: ffmpeg-kit-debug: LogCallback: , 1, 1/60000
2023-03-12 15:17:13.281 :: ffmpeg-kit-debug: LogCallback: : Data: none (tmcd / 0x64636D74), 0/1
2023-03-12 15:17:13.284 :: ffmpeg-kit-debug: LogCallback: (default)
2023-03-12 15:17:13.288 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.290 :: ffmpeg-kit-debug: LogCallback: Metadata:

2023-03-12 15:17:13.291 :: ffmpeg-kit-debug: LogCallback: creation_time : 
2023-03-12 15:17:13.292 :: ffmpeg-kit-debug: LogCallback: 2022-02-06T13:53:53.000000Z
2023-03-12 15:17:13.294 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.296 :: ffmpeg-kit-debug: LogCallback: handler_name : 
2023-03-12 15:17:13.299 :: ffmpeg-kit-debug: LogCallback: GoPro TCD 
2023-03-12 15:17:13.302 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.306 :: ffmpeg-kit-debug: LogCallback: Stream #0:3
2023-03-12 15:17:13.309 :: ffmpeg-kit-debug: LogCallback: [0x4]
2023-03-12 15:17:13.310 :: ffmpeg-kit-debug: LogCallback: (eng)
2023-03-12 15:17:13.313 :: ffmpeg-kit-debug: LogCallback: , 0, 1/1000
2023-03-12 15:17:13.316 :: ffmpeg-kit-debug: LogCallback: : Data: bin_data (gpmd / 0x646D7067), 0/1, 61 kb/s
2023-03-12 15:17:13.318 :: ffmpeg-kit-debug: LogCallback: (default)
2023-03-12 15:17:13.320 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.322 :: ffmpeg-kit-debug: LogCallback: Metadata:

2023-03-12 15:17:13.325 :: ffmpeg-kit-debug: LogCallback: creation_time : 
2023-03-12 15:17:13.327 :: ffmpeg-kit-debug: LogCallback: 2022-02-06T13:53:53.000000Z
2023-03-12 15:17:13.329 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.331 :: ffmpeg-kit-debug: LogCallback: handler_name : 
2023-03-12 15:17:13.335 :: ffmpeg-kit-debug: LogCallback: GoPro MET 
2023-03-12 15:17:13.337 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.339 :: ffmpeg-kit-debug: LogCallback: Stream #0:4
2023-03-12 15:17:13.342 :: ffmpeg-kit-debug: LogCallback: [0x5]
2023-03-12 15:17:13.344 :: ffmpeg-kit-debug: LogCallback: (eng)
2023-03-12 15:17:13.345 :: ffmpeg-kit-debug: LogCallback: , 0, 1/60000
2023-03-12 15:17:13.347 :: ffmpeg-kit-debug: LogCallback: : Data: none (fdsc / 0x63736466), 0/1, 13 kb/s
2023-03-12 15:17:13.350 :: ffmpeg-kit-debug: LogCallback: (default)
2023-03-12 15:17:13.352 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.354 :: ffmpeg-kit-debug: LogCallback: Metadata:

2023-03-12 15:17:13.356 :: ffmpeg-kit-debug: LogCallback: creation_time : 
2023-03-12 15:17:13.359 :: ffmpeg-kit-debug: LogCallback: 2022-02-06T13:53:53.000000Z
2023-03-12 15:17:13.361 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.365 :: ffmpeg-kit-debug: LogCallback: handler_name : 
2023-03-12 15:17:13.369 :: ffmpeg-kit-debug: LogCallback: GoPro SOS 
2023-03-12 15:17:13.372 :: ffmpeg-kit-debug: LogCallback: 

2023-03-12 15:17:13.374 :: ffmpeg-kit-debug: LogCallback: Successfully opened the file.

2023-03-12 15:17:13.376 :: ffmpeg-kit-debug: LogCallback: open_files INPUT done
2023-03-12 15:17:13.378 :: ffmpeg-kit-debug: LogCallback: apply_sync_offsets
2023-03-12 15:17:13.382 :: ffmpeg-kit-debug: LogCallback: apply_sync_offsets done
2023-03-12 15:17:13.386 :: ffmpeg-kit-debug: LogCallback: init_complex_filters
2023-03-12 15:17:13.389 :: ffmpeg-kit-debug: LogCallback: init_complex_filters done
2023-03-12 15:17:13.391 :: ffmpeg-kit-debug: LogCallback: open_files OUTPUT
2023-03-12 15:17:13.392 :: ffmpeg-kit-debug: LogCallback: open_files OUTPUT done
2023-03-12 15:17:13.395 :: ffmpeg-kit-debug: LogCallback: check_filter_outputs
2023-03-12 15:17:13.397 :: ffmpeg-kit-debug: LogCallback: check_filter_outputs done
2023-03-12 15:17:13.399 :: ffmpeg-kit-debug: LogCallback: ffmpeg_parse_options done
2023-03-12 15:17:13.402 :: ffmpeg-kit-debug: LogCallback: At least one output file must be specified

2023-03-12 15:17:13.405 :: ffmpeg-kit-debug: LogCallback: [AVIOContext @ 0xb4000072dddd6510] Statistics: 3720930284 bytes read, 1 seeks

2023-03-12 15:17:13.407 :: ffmpeg-kit-debug: LogCallback: fd_close start
2023-03-12 15:17:13.410 :: ffmpeg-kit-debug: LogCallback: fd_close done
2023-03-12 15:17:13.412 :: ffmpeg-kit-debug: LogCallback: setjmp done



Note : I have built ffmpeg-kit with the following script :


#!/bin/bash

export ENCODERS="libvorbis,libvpx_vp8,libvpx_vp9,libx264,libx265,mpeg1video,mpeg2video,mpeg4,flv,wmv1,wmv2,msmpeg4v3,libaom_av1,\
h261,h263,theora,libtheora,png,aac,ac3,alac,libopencore_amrnb,libvo_amrwbenc,eac3,flac,mp2,libtwolame,libmp3lame,libopus,libspeex,wavpack,wmav1,wmav2,pcm_s16le,\
ssa,ass,dvbsub,dvdsub,movtext,srt,subrip,text,ttml,webvtt,xsub"

export SETTINGS="--disable-indevs \
 --enable-pthreads \
 --enable-indev=lavfi \
 --disable-outdevs \
 --disable-protocols \
 --enable-protocol=file,fd,saf,async \
 --disable-encoders \
 --enable-encoder=${ENCODERS}"

export CUSTOM_CONFIG=${SETTINGS}

./android.sh --disable-arm-v7a --disable-arm-v7a-neon --disable-x86 --disable-x86-64 --enable-android-media-codec --enable-android-zlib --enable-chromaprint --enable-dav1d --enable-fontconfig --enable-freetype --enable-fribidi --enable-gmp --enable-gnutls --enable-kvazaar --enable-lame --enable-libaom --enable-libass --enable-libiconv --enable-libilbc --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-opencore-amr --enable-openh264 --enable-opus --enable-sdl --enable-shine --enable-snappy --enable-soxr --enable-speex --enable-tesseract --enable-twolame --enable-vo-amrwbenc --enable-zimg --enable-x264 --enable-x265 --enable-gpl -l



Sample file : https://drive.google.com/file/d/1lvCiOBQqBEnUECn_HJi8qUoaCPCBnkgO/view?usp=share_link


Ffmpeg version : 5.1.


-
5 Top Google Optimize Alternatives to Consider
17 mars 2023, par Erin — Analytics Tips -
Apostrophe issue with FFmpeg
1er mars 2024, par Rohan MolinilloI'm working on a company's project which is vue.js.
There are also code parts in php.
It uses FFmpeg to create a video from multiple videos.
On each video, there is a text type subtitle.
Each text is retrieved from a .txt file
But I have a problem with apostrophes.


If in the subtitle is stored like this ( I'm here ) in the txt file, on the video there will be written ( Im ).
The apostrophe is removed and the rest of the text too ( here ) will not be displayed.


I'm new to php and ffmpeg, I've been on this problem for almost 3 weeks.


I share the php code with you.


<?php

declare(strict_types=1);

array_shift($argv); // remove script name in $argv[0]

$parameters = array_reduce($argv, function ($carry, $arg) {
 $tokens = explode('=', $arg);
 $carry[$tokens[0]] = $tokens[1];
 return $carry;
}, []);

$projectPath = $parameters['projectPath'];
$musicPath = $parameters['musicPath'];

$fontPath = getcwd() . "/public/fonts/cobol/Cobol-Bold.ttf";
$logoPath = getcwd() . "/public/images/saintex.jpg";
$carnetLogoPath = getcwd() . "/public/images/CarnetTitre.jpg";

// Adding descriptions for each clip and fade in and fade out filters
$clipsToDescribe = glob("$projectPath/*.webm");
$clipFrameRate = (int) shell_exec("cd $projectPath && ffprobe -v error -select_streams v -of default=noprint_wrappers=1:nokey=1 -show_entries stream=r_frame_rate $clipsToDescribe[0]");
$clipFrameRate = $clipFrameRate > 60 ? 30 : $clipFrameRate;

foreach ($clipsToDescribe as $key => $clipToDescribe) {
 $clipIndex = $key + 1;
 $clipFrames = (int) shell_exec("cd $projectPath && ffprobe -v error -select_streams v:0 -count_packets -show_entries stream=nb_read_packets -of csv=p=0 $clipToDescribe");
 $clipDuration = (float) ($clipFrames / $clipFrameRate) - 0.5;
 file_put_contents("$projectPath/clip{$clipIndex}_desc.txt", addslashes($parameters["clip{$clipIndex}_desc"]));
 shell_exec("cd $projectPath && ffmpeg -i $clipToDescribe -vf 'drawtext=fontfile=$fontPath: textfile=clip{$clipIndex}_desc.txt: fontcolor=white: fontsize=46: box=1: boxcolor=black@0.5: boxborderw=5: x=(w-text_w)/2: y=(h-text_h-50): fix_bounds=true, fade=t=in:st=0:d=0.3,fade=t=out:st=$clipDuration:d=0.3' -b:v 3000K -b:a 192K clip{$clipIndex}.webm");
}
array_map('unlink', glob("$projectPath/*desc.txt"));

shell_exec("cd $projectPath && ffmpeg -t 2 -f lavfi -i color=c=black:s=1280x720 -r 30 blank.webm");
shell_exec("cd $projectPath && ffmpeg -i blank.webm -i $carnetLogoPath -filter_complex '[0:v][1:v] overlay=(main_w/2)-(overlay_w/2):(main_h/2)-(overlay_h/2)' -pix_fmt yuv420p -c:a copy logo.webm");



$workshop = $parameters["workshop_type"];
$title = $parameters["title"];
shell_exec("cd $projectPath && ffmpeg -f lavfi -i color=size=1280x720:duration=3:rate=30:color=black -vf 'drawtext=text=$workshop:fontfile=$fontPath:fontcolor=white:fontsize=46:x=(w-text_w)/2:y=(h-text_h)/2, drawtext=text=$title:fontfile=$fontPath:fontcolor=white:fontsize=46:x=(w-text_w)/2:y=((h-text_h)/2)+lh+5' opening.webm");
unlink("$projectPath/blank.webm");

$videosFile = "file 'logo.webm'\n";
$videosFile .= "file 'opening.webm'\n";{
 file_put_contents("$projectPath/project_desc.txt", $parameters["project_desc"]);
 shell_exec("cd $projectPath && ffmpeg -f lavfi -i color=size=1280x720:duration=3:rate=30:color=black -vf 'drawtext=fontfile=$fontPath:fontsize=46:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2:textfile=project_desc.txt' project_desc.webm");
 unlink("$projectPath/project_desc.txt");
 $videosFile .= "file 'project_desc.webm'\n";
} 
if(array_key_exists("participants", $parameters)) {
 file_put_contents("$projectPath/participants.txt", "Participants :\n" . $parameters["participants"]);
 shell_exec("cd $projectPath && ffmpeg -f lavfi -i color=size=1280x720:duration=2:rate=30:color=black -vf 'drawtext=fontfile=$fontPath:fontsize=46:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2:textfile=participants.txt' participants.webm");
 unlink("$projectPath/participants.txt");
}

$videos = glob("$projectPath/clip*.webm");
foreach($videos as $video) {
 if($video != "originalVideos") {
 $videosFile .= "file ". "'{$video}'\n";
 }
} 
if(array_key_exists("participants", $parameters)) {
 $videosFile .= "file '$projectPath/participants.webm'";
}
array_map('unlink', glob("$projectPath/*webm.txt"));
file_put_contents("$projectPath/videosFile.txt", $videosFile);
if($musicPath == "/_musics/") {
 echo(shell_exec("cd $projectPath && ffmpeg -f concat -safe 0 -i videosFile.txt -b:v 10000K -crf 20 -b:a 192K output.webm"));
} else {
 echo(shell_exec("cd $projectPath && ffmpeg -f concat -safe 0 -i videosFile.txt -b:v 10000K -crf 20 -b:a 192K assembled.webm && ffmpeg -i assembled.webm -i ../..$musicPath -filter_complex ' [1:0] apad ' -shortest -y -b:v 3000K -b:a 192K output.webm"));
}



I tried many things but each time there were errors.
I think I didn't implement the code properly.


I share you the error


[09:21:02] RECEIVED EVENT: videoRequest
{ Error: Command failed: php ./public/src/generate.php projectPath='/home/rohan/Documents/dodoc2/_projects/its-a-test' musicPath='/_musics/classic.mp3' clip1_name='' clip2_name='' clip3_name='' clip4_name='' clip5_name='' clip1_desc='It's a first test' clip2_desc='It's a second test' clip3_desc='It's a third test' clip4_desc='It's a fourth' clip5_desc='It's a last test' project_desc='' workshop_type='Atelier Robotique' title='It's a test' participants='Molinillo Rohan
'
PHP Warning: Undefined array key 1 in /home/rohan/carnet-numerique/public/src/generate.php on line 9
PHP Warning: Undefined array key 1 in /home/rohan/carnet-numerique/public/src/generate.php on line 9
PHP Warning: Undefined array key 1 in /home/rohan/carnet-numerique/public/src/generate.php on line 9
PHP Warning: Undefined array key 1 in /home/rohan/carnet-numerique/public/src/generate.php on line 9
PHP Warning: Undefined array key 1 in /home/rohan/carnet-numerique/public/src/generate.php on line 9
PHP Warning: Undefined array key 1 in /home/rohan/carnet-numerique/public/src/generate.php on line 9
ffmpeg version 5.1.1-1ubuntu2.1 Copyright (c) 2000-2022 the FFmpeg developers
 built with gcc 12 (Ubuntu 12.2.0-3ubuntu1)
 configuration: --prefix=/usr --extra-version=1ubuntu2.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --disable-sndio --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-shared
 libavutil 57. 28.100 / 57. 28.100
 libavcodec 59. 37.100 / 59. 37.100
 libavformat 59. 27.100 / 59. 27.100
 libavdevice 59. 7.100 / 59. 7.100
 libavfilter 8. 44.100 / 8. 44.100
 libswscale 6. 7.100 / 6. 7.100
 libswresample 4. 7.100 / 4. 7.100
 libpostproc 56. 6.100 / 56. 6.100
Input #0, matroska,webm, from '/home/rohan/Documents/dodoc2/_projects/its-a-test/video-20230404-091933-682.webm':
 Metadata:
 encoder : QTmuxingAppLibWebM-0.0.1
 Duration: N/A, start: -0.001000, bitrate: N/A
 Stream #0:0(eng): Video: vp8, yuv420p(progressive), 1280x720, SAR 1:1 DAR 16:9, 1k tbr, 1k tbn (default)
 Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
Stream mapping:
 Stream #0:0 -> #0:0 (vp8 (native) -> vp9 (libvpx-vp9))
 Stream #0:1 -> #0:1 (opus (native) -> opus (libopus))
Press [q] to stop, [?] for help
[libvpx-vp9 @ 0x55952c183000] v1.12.0
Output #0, webm, to 'clip1.webm':
 Metadata:
 encoder : Lavf59.27.100
 Stream #0:0(eng): Video: vp9, yuv420p(tv, bt470bg/unknown/unknown, progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 3000 kb/s, 1k fps, 1k tbn (default)
 Metadata:
 encoder : Lavc59.37.100 libvpx-vp9
 Side data:
 cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: N/A
 Stream #0:1(eng): Audio: opus, 48000 Hz, stereo, flt, 192 kb/s (default)
 Metadata:
 encoder : Lavc59.37.100 libopus
frame= 229 fps= 11 q=12.0 Lsize= 2786kB time=00:00:07.52 bitrate=3034.7kbits/s speed=0.377x 
video:2601kB audio:181kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.175036%
PHP Warning: Undefined array key "clip2_desc" in /home/rohan/carnet-numerique/public/src/generate.php on line 29
PHP Fatal error: Uncaught TypeError: addslashes(): Argument #1 ($string) must be of type string, null given in /home/rohan/carnet-numerique/public/src/generate.php:29
Stack trace:
#0 /home/rohan/carnet-numerique/public/src/generate.php(29): addslashes()
#1 {main}
 thrown in /home/rohan/carnet-numerique/public/src/generate.php on line 29

 at ChildProcess.exithandler (child_process.js:275:12)
 at emitTwo (events.js:126:13)
 at ChildProcess.emit (events.js:214:7)
 at maybeClose (internal/child_process.js:925:16)
 at Socket.stream.socket.on (internal/child_process.js:346:11)
 at emitOne (events.js:116:13)
 at Socket.emit (events.js:211:7)
 at Pipe._handle.close [as _onclose] (net.js:554:12)
 killed: false,
 code: 255,
 signal: null,
 cmd: 'php ./public/src/generate.php projectPath=\'/home/rohan/Documents/dodoc2/_projects/its-a-test\' musicPath=\'/_musics/classic.mp3\' clip1_name=\'\' clip2_name=\'\' clip3_name=\'\' clip4_name=\'\' clip5_name=\'\' clip1_desc=\'It\'s a first test\' clip2_desc=\'It\'s a second test\' clip3_desc=\'It\'s a third test\' clip4_desc=\'It\'s a fourth\' clip5_desc=\'It\'s a last test\' project_desc=\'\' workshop_type=\'Atelier Robotique\' title=\'It\'s a test\' participants=\'Molinillo Rohan\n\'' }