
Recherche avancée
Médias (91)
-
Collections - Formulaire de création rapide
19 février 2013, par
Mis à jour : Février 2013
Langue : français
Type : Image
-
Les Miserables
4 juin 2012, par
Mis à jour : Février 2013
Langue : English
Type : Texte
-
Ne pas afficher certaines informations : page d’accueil
23 novembre 2011, par
Mis à jour : Novembre 2011
Langue : français
Type : Image
-
The Great Big Beautiful Tomorrow
28 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Texte
-
Richard Stallman et la révolution du logiciel libre - Une biographie autorisée (version epub)
28 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Texte
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (68)
-
Le profil des utilisateurs
12 avril 2011, parChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...) -
Configurer la prise en compte des langues
15 novembre 2010, parAccéder à la configuration et ajouter des langues prises en compte
Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...) -
XMP PHP
13 mai 2011, parDixit Wikipedia, XMP signifie :
Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)
Sur d’autres sites (5558)
-
How add Data Stream into MXF(using mpeg2video) file with FFmpeg and C/C++
26 mars 2019, par Helmuth SchmitzI’m a little bit stuck here trying create a MXF file
with data stream on it. I have several MXF video files that contain
this standard**1 Video Stream:
Stream #0:0: Video: mpeg2video (4:2:2), yuv422p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 50000 kb/s, 29.9
16 audio streams
Audio: pcm_s24le, 48000 Hz, 1 channels, s32 (24 bit), 1152 kb/s
1 Data Stream:
Data: none**This data stream, contain personal data inside video file. I can
open this stream and data is really there. Is all ok. But, when i try
to create a file exactly like this, everytime i call "avformat_write_header"
it returns an error.If i do comment the creation of this data streams the video file is succeffully
created.If i change to "mpegts" with this data stream, the video file is also succeffully
created.But, i can’t use mpets and i need this data stream.
I know that is possible MXF with data stream cause i have this originals files
that have this combination.So, i know that i missing something in my code.
This is the way i create this Data Stream :
void CFFmpegVideoWriter::addDataStream(EOutputStream *ost, AVFormatContext *oc, AVCodec **codec, enum AVCodecID codec_id)
{
AVCodecParameters *par;
ost->stream = avformat_new_stream(oc, NULL);
if (ost->stream == NULL)
{
fprintf(stderr, "OOooohhh man: avformat_new_stream() failed.\n");
return;
}
par = ost->stream->codecpar;
ost->stream->index = 17;
par->codec_id = AV_CODEC_ID_NONE;
par->codec_type = AVMEDIA_TYPE_DATA;
ost->stream->codec->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
}the file openning is this :
CFFMpegVideoWriter::CFFMpegVideoWriter(QString outputfilename) : QThread()
{
av_register_all();
avcodec_register_all();
isOpen = false;
shouldClose = false;
frameIndex = 0;
#ifdef __linux__
QByteArray bFilename = outputfilename.toUtf8();
#else
QByteArray bFilename = outputfilename.toLatin1();
#endif
const char* filename = bFilename.data();
codecContext = NULL;
//encontra o formato desejado...
outputFormat = av_guess_format("mp2v", filename, nullptr);
if (!outputFormat)
{
qDebug("Could not find suitable output format\n");
return;
}
//encontra o codec...
codec = avcodec_find_encoder(outputFormat->video_codec);
if (!codec)
{
qDebug( "Codec not found\n");
return;
}
//aloca o contexto do codec...
codecContext = avcodec_alloc_context3(codec);
codecContext->field_order = AV_FIELD_TT;
codecContext->profile = FF_PROFILE_MPEG2_422;
//aloca o contexto do formato...
formatContext = avformat_alloc_context();
formatContext->oformat = outputFormat;
//aloca o contexto da midia de saida...
avformat_alloc_output_context2(&formatContext, NULL, NULL, filename);
if (!formatContext)
{
qDebug("Erro");
return;
}
videoStream.tmp_frame = NULL;
videoStream.swr_ctx = NULL;
//adiciona a stream de video...
if (outputFormat->video_codec != AV_CODEC_ID_NONE)
{
addVideoStream(&videoStream, formatContext, &video_codec, outputFormat->video_codec);
}
//adiciona as 16 streams de audio...
if (outputFormat->audio_codec != AV_CODEC_ID_NONE)
{
for (int i = 0; i < 16; i++)
{
addAudioStream(&audioStream[i], formatContext, &audio_codec, outputFormat->audio_codec);
}
}
addDataStream(&datastream, formatContext, &video_codec, outputFormat->video_codec);
videoStream.sws_ctx = NULL;
for (int i = 0; i < 16; i++)
{
audioStream[i].sws_ctx = NULL;
}
opt = NULL;
//carreca o codec de video para stream de video...
initVideoCodec(formatContext, video_codec, &videoStream, opt);
//carrega o codec de audio para stream de audio...s
for (int i = 0; i < 16; i++)
{
initAudioCodec(formatContext, audio_codec, &audioStream[i], opt);
}
av_dump_format(formatContext, 0, filename, 1);
//abrea o arquivo de saida..
if (!(outputFormat->flags & AVFMT_NOFILE))
{
ret = avio_open(&formatContext->pb, filename, AVIO_FLAG_WRITE);
if (ret < 0)
{
qDebug("Could not open'%s", filename);
return;
}
}
//escreve o cabecalho do arquivo...
ret = avformat_write_header(formatContext, &opt);
if (ret < 0)
{
qDebug("Error occurred when opening output file");
return;
}
isOpen = true;
QThread::start();
}The code always fails at "avformat_write_header" call.
But if i remove "datastream" or change it to mpegts everything runs fine.
Any ideia of what am i doing wrong here ?
Thanks for reading this.
Helmuth
-
Anomalie #4449 (Nouveau) : Taille d’image erronné des logos si un redimensionnement de l’image
25 février 2020Pour le contexte, le problème est signalé là https://github.com/marcimat/bigup/issues/9 mais ne provient pas de Bigup.
Pour reproduire :¶
- définir dans mes_options.php les constantes :
- <span class="CodeRay"><span class="predefined">define</span>(<span class="string"><span class="delimiter">'</span><span class="content">_IMG_MAX_WIDTH</span><span class="delimiter">'</span></span>, <span class="integer">3000</span>);
- <span class="predefined">define</span>(<span class="string"><span class="delimiter">'</span><span class="content">_IMG_MAX_HEIGHT</span><span class="delimiter">'</span></span>, <span class="integer">1000</span>);
- </span>
- ajouter un plus grand logo (en SPIP 3.3+) sur un élément, par exemple un article
- l’aperçu au retour retourne une image erronée, avec les dimensions de l’images d’origine (alors que l’image a réellement été redimensionnée sur le disque)
- au rechargement la taille est affichée correctement, mais la miniature est toujours incorrecteSuppositions¶
Il semblerait que les filtres
largeur()
ethauteur()
utilisés par image_reduire, et par l’affichage du logo aient un cache qui enregistre la taille de l’image originale la première fois qu’ils sont appelés, mais si cette image est modifiée (réduite) ensuite, un appel ultérieur à ces fonctions retourne la valeur en cache.La réduction se fait dans
verifier_taille_document_acceptable()
de action/ajouter_documents.php du plugin medias, qui prend en comptel les constantes_IMG_MAX_WIDTH
et_IMG_MAX_HEIGHT
indiquées. -
Roadmap #3844 : Gérer la parenté dans la déclaration d’un objet éditorial.
12 mars 2018, par RastaPopoulos ♥J’ai continué dans la réflexion, ayant besoin de parent et enfants dans le plugin Duplicator. J’ai expliqué différents problèmes dans la liste Zone, mais pour pas le perdre, je vais copier ça dans ce ticket.
Proposition de deux fonctions d’API génériques¶
À mon avis il faut aller stable et plus abstrait que juste la déclaration dans l’objet, car
1) ça peut éventuellement changer
2) il faudrait pouvoir prendre en compte les cas courants magiquement même quand ya pas eu de déclaration explicite (id_rubrique, id_parent…)
3) ça donne le parent d’un type d’objet pour remonter, mais ça ne donne pas l’inverse, les enfantsDonc dans tous les cas il faudrait sûrement une fonction du genre
array objet_info_parent($objet)
dont l’algorithme serait :
- s’il y a une déclaration explicite, c’est ça qu’on utilise
- s’il y a un champ id_rubrique, on fait comme si ça avait été déclaré avec la rubrique array(type=>rubrique, champ=>id_rubrique)
- s’il y a un champ id_parent, on considère que l’objet est arborescent de lui-même, et donc comme si ça avait été déclaré comme ça array(type=$objet, champ=>id_parent)Mais je pense aussi une fonction cette fois un peu plus longue, qui donnerait l’ensemble des enfants directs qu’on a réussi à trouver
array objet_info_enfants($objet)
dont l’algorithme serait :
- un tableau de résultats en static pour toujours faire qu’une fois par hit
- si $enfants[$objet] déjà rempli en renvoie
- sinon on boucle sur tous les objets déclarés
- pour chaque, si on trouve que l’objet peut avoir comme parent direct le $objet qu’on cherche, alors on l’ajoute à son tableau des enfants possibles
- donc soit si dans sa clé "parent" ya $objet, soit s’il a un id_rubrique et qu’on cherchait pour "rubrique", soit s’il a un id_parent et qu’on cherchait pour son typeUn parent direct dont l’objet n’est pas fixe¶
Encore autre chose, je ne sais pas si c’est prévu, mais il faudrait pouvoir gérer les cas où le parent direct (on parle bien toujours de parentée directe, pas de liens multiples) peut être n’importe quel objet. Dans ce cas, il y a les champs objet et id_objet directement dans la table de l’objet.
Un parent encore plus compliqué avec deux cas à tester pour le même contenu¶
Mais il y a encore plus compliqué, et c’est le cas pour mes Chapitres, mais aussi le cas pour les Forums fournit par SPIP : le parent direct
peut être
- SOIT l’objet lui-même car il est arborescent avec un id_parent
- SOIT n’importe quel autre contenu SI ET SEULEMENT SI le champ id_parent=0 !C’est bien le cas pour les forums :
- le premier forum d’un fil a pour parent un objet SPIP, avec objet et id_objet remplis dans sa table ET id_parent=0
- les sous-forums ont AUSSI gardé en mémoire objet et id_objet du forum racine, mais avec id_parent rempli avec l’identifiant id_forum de leur parentDans ce cas on ne peut pas se baser uniquement sur le fait que objet et id_objet sont remplis. Le parent est un objet SPIP quelconque si objet et id_objet remplis ET id_parent=0. Et dès que id_parent>0 alors le parent direct est le même objet (forum, chapitre ou autre).
Bref ya des cas comme ça qui sont plus complexes, mais pourtant légitimes, et en plus fournis dans la dist, maintenus par le core, donc il faut savoir les gérer aussi.
Du coup pour conclure, j’ai pas forcément de solution directe pour la déclaration générique qui doit intégrer le noyau au final, mais c’est pour expliquer pourquoi peut-être, possiblement, il y aurait besoin d’un pipeline dédié dans Duplicator pour gérer ces enfantillages compliqués tant que dans l’API de parent c’est pas encore résolu.
En tout cas ça fait avancer la réflexion :)