
Recherche avancée
Autres articles (50)
-
Gestion des droits de création et d’édition des objets
8 février 2011, parPar défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;
-
Les images
15 mai 2013 -
Supporting all media types
13 avril 2011, parUnlike most software and media-sharing platforms, MediaSPIP aims to manage as many different media types as possible. The following are just a few examples from an ever-expanding list of supported formats : images : png, gif, jpg, bmp and more audio : MP3, Ogg, Wav and more video : AVI, MP4, OGV, mpg, mov, wmv and more text, code and other data : OpenOffice, Microsoft Office (Word, PowerPoint, Excel), web (html, CSS), LaTeX, Google Earth and (...)
Sur d’autres sites (5529)
-
Transcoding MPEG-1 to MPEG-H (H.265/HEVC)
17 juin 2021, par Alexander ShukaevTranscoding MPEG-4 video to MPEG-H in order to reduce the size in half without losing perceivable quality is relatively easy with a 2-pass approach presented within FFMPEG documentation. The scheme that I've been using is to extract the
bit_rate
value from the original MPEG-4 video usingffprobe
and then multiply that value by4 / 10
. Thus, that new lower value would be specified by-b:v
and become thebit_rate
value of the resulting MPEG-H video. This worked quite well for most of the videos, not only with MPEG-4, but also with QuickTime and Audio Video Interleave (AVI).

However, now I stumbled across the issue with transcoding MPEG-1 video in such a way. Somehow, the resulting MPEG-H video is unacceptably larger than the original video by a hefty margin. A 200MB original video could easily result in 1.5GB transcoded video. When I looked for a reason for such ridiculous behavior, I found out that somehow the advertised
bit_rate
value in MPEG-1 videos is also ridiculously high. Take the following two videos as an example (output fromffprobe
) :

164MB 15MB
[STREAM] [STREAM]
index=0 index=1
codec_name=mpeg4 codec_name=mpeg1video
codec_long_name=MPEG-4 part 2 codec_long_name=MPEG-1 video
profile=Simple Profile profile=unknown
codec_type=video codec_type=video
codec_time_base=1/24 codec_time_base=1/25
codec_tag_string=mp4v codec_tag_string=[0][0][0][0]
codec_tag=0x7634706d codec_tag=0x0000
width=960 width=640
height=540 height=480
coded_width=960 coded_width=0
coded_height=540 coded_height=0
closed_captions=0 closed_captions=0
has_b_frames=0 has_b_frames=1
sample_aspect_ratio=1:1 sample_aspect_ratio=1:1
display_aspect_ratio=16:9 display_aspect_ratio=4:3
pix_fmt=yuv420p pix_fmt=yuv420p
level=1 level=-99
color_range=unknown color_range=tv
color_space=unknown color_space=unknown
color_transfer=unknown color_transfer=unknown
color_primaries=unknown color_primaries=unknown
chroma_location=left chroma_location=center
field_order=unknown field_order=unknown
timecode=N/A timecode=N/A
refs=1 refs=1
quarter_sample=false 
divx_packed=false 
id=N/A id=0x1e0
r_frame_rate=24/1 r_frame_rate=25/1
avg_frame_rate=24/1 avg_frame_rate=25/1
time_base=1/24 time_base=1/90000
start_pts=0 start_pts=9900
start_time=0.000000 start_time=0.110000
duration_ts=7451 duration_ts=3690000
duration=310.458333 duration=41.000000
bit_rate=4096346 bit_rate=104857200
max_bit_rate=9000000 max_bit_rate=N/A
bits_per_raw_sample=N/A bits_per_raw_sample=N/A
nb_frames=7451 nb_frames=N/A
nb_read_frames=N/A nb_read_frames=N/A
nb_read_packets=N/A nb_read_packets=N/A
DISPOSITION:default=1 DISPOSITION:default=0
DISPOSITION:dub=0 DISPOSITION:dub=0
DISPOSITION:original=0 DISPOSITION:original=0
DISPOSITION:comment=0 DISPOSITION:comment=0
DISPOSITION:lyrics=0 DISPOSITION:lyrics=0
DISPOSITION:karaoke=0 DISPOSITION:karaoke=0
DISPOSITION:forced=0 DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0 DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0 DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0 DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0 DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0 DISPOSITION:timed_thumbnails=0
[/STREAM] [/STREAM]



Clearly, the MPEG-4 video is like 11 times larger than MPEG-1, but at the same time MPEG-4 video has like 100000000 less bit rate advertised than MPEG-1. And since my algorithm does not consider anything else to compute the final bit rate, that is how the problem facilitates itself. Now I tried to look into some other field values in search for a hint that maybe something else should also be included into the equation, and my suspicions lie in the following ones :


time_base=1/24 time_base=1/90000
start_pts=0 start_pts=9900
start_time=0.000000 start_time=0.110000
duration_ts=7451 duration_ts=3690000
duration=310.458333 duration=41.000000



I'm not an expert with MPEG and the documentation isn't very informative on these in a way that I could derive some math out of it or otherwise somehow connect them to resolving my issue in a meaningful way. Could anybody experienced please assist here ?


-
Anomalie #4348 : php 7.4 alpha1
26 août 2019, par Franck DC’est déjà beaucoup plus lisible :)
Il y a pratiquement tout, j’ai pas fait l’ajout de csstidy car il y a une pr en cour, j’ai des log avec simplelog, mais comme il y a des chances que cela soit la même choses qu’avec les tests, je pense que le mieux est de faire par étape...
J’ai un warning si je change l’auteur d’un article
Warning : count() : Parameter must be an array or an object that implements Countable in C :\laragon\www\test3\prive\objets\liste\auteurs_fonctions.php on line 117Alors avec les tests unitaires, je trouves aussi ( a voir si ce ne sont pas "juste" les tests) :
introduction.html : erreur est rouge, mais je comprends pas pourquoi, j’ai un article avec un chapeau et article bidon, donc, il devrait être vertcache_sessions.php : erreur (j’ai pas plus d’info)
Echec Assertion inclure/A_session_wo assert_session=1 0.07surl_to_ascii.php : erreur
Deprecated : Array and string offset access syntax with curly braces is deprecated in C :\laragon\www\test3\ecrire\inc\idna_convert.class.php on line 426
Deprecated : Array and string offset access syntax with curly braces is deprecated in C :\laragon\www\test3\ecrire\inc\idna_convert.class.php on line 440
Deprecated : Array and string offset access syntax with curly braces is deprecated in C :\laragon\www\test3\ecrire\inc\idna_convert.class.php on line 867
Deprecated : Array and string offset access syntax with curly braces is deprecated in C :\laragon\www\test3\ecrire\inc\idna_convert.class.php on line 998valider_url_distante.php : erreur
Deprecated : join() : Passing glue string after array is deprecated. Swap the parameters in C :\laragon\www\test3\tests\test.inc on line 113extraire_attribut.php : erreur
Warning : preg_match() : Empty regular expression in C :\laragon\www\test3\ecrire\inc\filtres.php on line 1845
Warning : preg_match() : Empty regular expression in C :\laragon\www\test3\ecrire\inc\filtres.php on line 1845
Deprecated : join() : Passing glue string after array is deprecated. Swap the parameters in C :\laragon\www\test3\tests\test.inc on line 113extraire_balise.php : erreur
Deprecated : join() : Passing glue string after array is deprecated. Swap the parameters in C :\laragon\www\test3\tests\test.inc on line 113form_hidden_arbo.php : erreur
Notice : Trying to access array offset on value of type bool in C :\laragon\www\test3\ecrire\req\mysql.php on line 246
Deprecated : join() : Passing glue string after array is deprecated. Swap the parameters in C :\laragon\www\test3\tests\test.inc on line 113form_hidden_libres.php : erreur et form_hidden_propres.php : erreur et form_hidden_propres_qs.php : erreur
Notice : Trying to access array offset on value of type bool in C :\laragon\www\test3\ecrire\req\mysql.php on line 246spip_htmlentities.php : erreur et spip_htmlspecialchars.php : erreur et filtre_text_csv_dist.php : erreur
Deprecated : join() : Passing glue string after array is deprecated. Swap the parameters in C :\laragon\www\test3\tests\test.inc on line 11300_sql_create_drop_view.php : erreur
Notice : Undefined index : field in C :\laragon\www\test3\tests\unit\sql\00_sql_create_drop_view.php on line 36
Notice : Undefined index : key in C :\laragon\www\test3\tests\unit\sql\00_sql_create_drop_view.php on line 37
Warning : count() : Parameter must be an array or an object that implements Countable in C :\laragon\www\test3\tests\test.inc on line 83
Deprecated : join() : Passing glue string after array is deprecated. Swap the parameters in C :\laragon\www\test3\tests\test.inc on line 113
Lecture des structures de table en echec10_sql_insert_select.php : erreur
Champ maj sur update
Le champ ’maj’ () n’a vraisemblablement pas recu de timestamp à l’insertion
Le champ ’maj’ () n’a vraisemblablement pas été mis a jour lors de l’update
Le champ ’maj’ () n’a vraisemblablement pas été mis a jour lors de l’updateq
Selections
sql_multi [en] mal rendu : retour : Un debut de chaine : Vinassy, et [la fin], attendu :
sql_multi [de] mal rendu : retour : Un debut de chaine : Vinasse, et [la fin], attendu :
Selections multi tables
selection sur 2 tables avec where en echec : attendu 3 reponses, présentes :30_sql_alter.php : erreur
Notice : Undefined index : field in C :\laragon\www\test3\tests\unit\sql\30_sql_alter.php on line 54
Notice : Trying to access array offset on value of type null in C :\laragon\www\test3\tests\unit\sql\30_sql_alter.php on line 54
Alter : drop column
sql_alter rate DROP COLUMN (plus de table ou sql_showtable en erreur ?)
sql_alter rate DROP sans COLUMN (plus de table ou sql_showtable en erreur ?)
sql_alter rate CHANGE (plus de table ou sql_showtable en erreur ?)
sql_alter rate MODIFY varchar en text :
sql_alter rate ADD COLUMN houba (plus de table ou sql_showtable en erreur ?)
sql_alter rate ADD COLUMN hop AFTER (plus de table ou sql_showtable en erreur ?)
Alter : renomme table
sql_alter rate RENAME table
Alter : index
sql_alter rate DROP INDEX sons (plus de table ou sql_showtable en erreur ?)
sql_alter rate ADD INDEX (wouaf) (plus de table ou sql_showtable en erreur ?)
sql_alter rate ADD INDEX pluie (grrrr) (plus de table ou sql_showtable en erreur ?)
sql_alter rate DROP INDEX pluie (plus de table ou sql_showtable en erreur ?)
sql_alter rate ADD INDEX dring (grrrr, wouaf) (plus de table ou sql_showtable en erreur ?)
Alter : primary key
sql_alter rate DROP PRIMARY KEY (plus de table ou sql_showtable en erreur ?)
sql_alter rate ADD PRIMARY KEY (plus de table)
Alter : multiples
sql_alter rate DROP INDEX dring, DROP COLUMN wouaf, DROP COLUMN grrrr (plus de table ou sql_showtable en erreur ?)
sql_alter rate ADD COLUMN a INT, ADD COLUMN b INT, ADD COLUMN c INT, ADD INDEX abc (a,b,c) (plus de table ou sql_showtable en erreur ?)propre.php : erreur
Deprecated : join() : Passing glue string after array is deprecated. Swap the parameters in C :\laragon\www\test3\tests\test.inc on line 113tw_propre.php : erreur et tw_propre_modeles_block.php : erreur et tw_propre_modeles_inline.php : erreur et tw_propre_typo.php : erreur
Deprecated : join() : Passing glue string after array is deprecated. Swap the parameters in C :\laragon\www\test3\tests\test.inc on line 113barre_outil_markitup.php : erreur
Fail : Test de la classe Barre_outils -> testCreerJson -> Pattern [,["name" :",] not detected in [String : barre_outils_spip = "nameSpace" : "spip", "previewAutoRefresh" : false, "markupSet" : [ "name" : "Transformer enintertitre
", "key" : "H", ...] at [C :\laragon\www\test3\plugins-dist\porte_plume\tests\barre_outil_markitup.php line 267]
Fail : Test de la classe Barre_outils -> testBoutonsDUneLangue -> Pattern [,"lang" :[,] not detected in [String : barre_outils_spip = "nameSpace" : "spip", "previewAutoRefresh" : false, "markupSet" : [ "name" : "test apparaissant si langue est le francais", "className...] at [C :\laragon\www\test3\plugins-dist\porte_plume\tests\barre_outil_markitup.php line 301]
Fail : Test de la classe Barre_outils -> testFonctionsJavacriptDansParametreNeDoitPasEtreEntreguillemetsDansJson -> Pattern [/:function\(/] not detected in [String : barre_outils_spip = "nameSpace" : "spip", "previewAutoRefresh" : false, "markupSet" : [ "name" : "Transformer enintertitre
", "key" : "H", ...] at [C :\laragon\www\test3\plugins-dist\porte_plume\tests\barre_outil_markitup.php line 318]
BOUM !!! - Passes : 68, Failures : 3, Exceptions : 0, Non Applicable : 0 -
Révision 105476 : Correction de plusieurs soucis sur la fonction nettoyer_raccourcis_typo() .
27 juillet 2017, par marcimat@rezo.netCette fonction est utilisée par couper() ou pour calculer des attributs title
ou encore pour indexer des documents par le plugin Indexer sur une base Sphinx.C’est dans ce dernier cadre que quelques problèmes se sont montrées :
- la regexp qui supprimait les notes pouvait tuer PCRE si le texte était volumineux et avait des notes mal fermées.
On simplifie cette expression. Cela ne provoque aucun changement sur les bases de tests que j’ai pu voir, améliorant
même le retour de 3 articles qui renvoyaient vide avant à tord.- contrairement à ce qu’affirmait le commentaire, les tableaux n’étaient pas supprimés dans la plupart des cas.
Effectivement la regexp cherchait uniquemnet des \r (sauts de paragraphe à cet endroit) et pas de \n (sauts de lignes à cet endroit).
La regexp n’étant pas multiligne d’une part et textwheel sachant bien gérer les tableaux même s’il n’y a pas de ligne vide avant/après,
on permet d’éliminer simplement les lignes de tableau en ajoutant \n à cet endroit.Plus généralement cette fonction… ne nettoyait pas tous les raccourcis. Une partie était faite par couper() uniquement.
Il me semble que c’est un tord. On déplace donc de couper() dans la fonction nettoyer_raccourcis_typo() quelques nettoyages,
notamment la suppression des caractères de liste.- les listes étaient retournées avec un saut de paragraphe entre chaque élément. Dans le cadre de ces fonctions ce n’est a priori pas utile,
et on retourne du coup un simple saut de ligne à la place (note : couper remplace les sauts de ligne par des espaces ensuite — pas les sauts de paragraphe).
Il y a donc un changement de comportement de ce point de vue.- le texte de sortie est trimmé (couper() s’en occupe aussi d’ailleurs).
Conséquence notable pour Indexer : le contenu des tableau n’est plus retourné. Une option devrait être proposée à cette fonction
pour retourner les contenus des tableaux, mais sans les | .On ajoute quelques fonctions de tests unitaires au passage.
La fonction couper() du core va être modifiée en conséquence.