
Recherche avancée
Autres articles (52)
-
La file d’attente de SPIPmotion
28 novembre 2010, parUne file d’attente stockée dans la base de donnée
Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...) -
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 0.2 est la première version de MediaSPIP stable.
Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Comme pour la version précédente, 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 (...) -
Mise à disposition des fichiers
14 avril 2011, parPar défaut, lors de son initialisation, MediaSPIP ne permet pas aux visiteurs de télécharger les fichiers qu’ils soient originaux ou le résultat de leur transformation ou encodage. Il permet uniquement de les visualiser.
Cependant, il est possible et facile d’autoriser les visiteurs à avoir accès à ces documents et ce sous différentes formes.
Tout cela se passe dans la page de configuration du squelette. Il vous faut aller dans l’espace d’administration du canal, et choisir dans la navigation (...)
Sur d’autres sites (6315)
-
ffmpeg/libav easy way to set options for muxer, codec, format, etc [closed]
14 mars 2023, par PatrickEdit (shorter question) :


In the ff tools (e.g. ffplay) I can set all kinds of options by simply providing a list of arguments in cmd. Id like to do that programmatically as well and without having to look up where it belongs and insert it in the different AVDictionary by hand every time. Is there a way to do this easily ?


Long question :


I recently messed around with ffplay code to see how it works and I noticed it uses a very straight forward way to parse and set all the command line options using the library internal cmdutils.h. I personally find the av_opt_set used in other examples of av wrappers quite confusing (Some args are explicitly stored in the struct, some in priv_data ? Im allowed/supposed to modify void*priv_data ? Which objects can I use av_opt_set on ? Which args go in which object and are they declared or in priv_data ? Where is this documented ?).
In ffplay all args are simply stored in an array and distributed to the right codec/muxer/format instance using cmdutil.
Id like to have exactly this functionality for my program (so that i can simply read a json config and don't need to care about it any further). Apparently the necessary OptionDef arrays are already defined in different implementation files.


However my actual question : I noticed the OptionDef array definition in ffplay does not contain all options (only some from cmdutil included via macro). But other options e.g. fflags are not included anywhere (only defined somewhere else) and yet they work. So how does cmdutil set/parse them ?


I hope someone can answer this, since simply adapting cmdutil would be a quite simple solution for me. Id also really appreciate some general guidance regarding my previous questions.


Many Thanks in advance !


I tried looking into the ffmpeg source and expected all OptionDef array definitions to be connected/collected inside a single array such that cmdutil can parse them easily. However this isn't the case and still some cmd options work. Therefore Im confused on how cmtutil is able to parse them


-
lavf : Use wchar functions for filenames on windows for mkdir/rmdir/rename/unlink
17 novembre 2014, par Martin Storsjölavf : Use wchar functions for filenames on windows for mkdir/rmdir/rename/unlink
This makes sure that the internal utf8 path names are handled
properly - the normal file handling functions assume path names
are in the native codepage, which isn’t utf8.This assumes that the tools outside of lavf don’t use the mkdir
definition. (The tools don’t do the same reading of command line
parameters as wchar either - they probably won’t handle all possible
unicode file parameters properly, but at least work more predictably
if no utf8/wchar conversion is involved.)This is moved further down in os_support.h, since windows.h shouldn’t
be included before winsock2.h, while io.h needs to be included before
the manual defines for lseek functions.Signed-off-by : Martin Storsjö <martin@martin.st>
-
FFMPEG Can't Display The Duration Of a Video
30 août 2021, par MalkavianI'm trying to use ffmpeg to capture frames from a video file, but I can't even get the duration of a video. everytime when I try to access it with
pFormatCtx->duration
I'm getting 0. I know the pointer initialized and contains the correct duration because if I useav_dump_format(pFormatCtx, 0, videoName, 0);
then I actually get the duration data along with other information about the video.
This is what I get when I useav_dump_format(pFormatCtx, 0, videoName, 0);
:

Input #0, avi, from 'futurama.avi':
Duration: 00:21:36.28, start: 0.000000, bitrate: 1135 kb/s
Stream #0.0: Video: mpeg4 (Advanced Simple Profile), yuv420p, 512x384
[PAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
Stream #0.1: Audio: ac3, 48000 Hz, stereo, s16, 192 kb/s 



I don't understand why
av_dump_format
can display duration and I can't. I checked the function definition, to display the duration, the function also usespFormatCtx->duration
. It's not just the duration other member variables also don't display the proper data when I call them inmain.cpp


Here's my code :


extern "C" {
 #include<libavcodec></libavcodec>avcodec.h>
 #include<libavformat></libavformat>avformat.h>
 #include<libswscale></libswscale>swscale.h>
}

int main(int argc, char *argv[]) {
 AVFormatContext *pFormatCtx = NULL;

 const char videoName[] = "futurama.avi";

 // Register all formats and codecs.
 av_register_all();
 cout << "Opening the video file";
 // Open video file
 int ret = avformat_open_input(&pFormatCtx, videoName, NULL, NULL) != 0;
 if (ret != 0) {
 cout << "Couldn't open the video file." << ret ;
 return -1;
 }
 if(avformat_find_stream_info(pFormatCtx, 0) < 0) {
 cout << "problem with stream info";
 return -1;
 }

 av_dump_format(pFormatCtx, 0, videoName, 0);
 cout << pFormatCtx->bit_rate << endl; // different value each time, not initialized properly.
 cout << pFormatCtx->duration << endl; // 0
 return 0;
}



I don't know if it helps but, I use QtCreator on Ubuntu and linked the libraries statically.