
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 (62)
-
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 (...) -
ANNEXE : Les plugins utilisés spécifiquement pour la ferme
5 mars 2010, parLe site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)
-
Gestion générale des documents
13 mai 2011, parMédiaSPIP ne modifie jamais le document original mis en ligne.
Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...)
Sur d’autres sites (6760)
-
What CRF matches with a JPEG compression rate
21 janvier 2017, par XlsxI have a very basic program that I wrote in python that takes a video from a webcam and saves it to an mp4 file. Each frame is saved as a jpeg file, and then I use ffmpeg to merge all the frames together. There are two different compression options - the JPEG compression quality, and the mp4 CRF. Which CRF should I use relative to the JPEG compression quality so that the mp4 file is the smallest file size it can be, while not losing data from the already lossy jpeg and not adding extra data to the mp4 ?
For example, I save my JPEGs with a quality of 30
When I use ffmpeg, I set the -crf parameter to 38
When I look at the final mp4 file, I have lost quality from the JPEGs -
understanding libx264 output [closed]
11 août 2015, par nmxprimeI used libx264 in ffmpeg to encode . Finally i got below output .
Can anyone guide me understanding & interpreting this ?? Any reference/documentation ?
01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] frame I:7 Avg QP:27.51 size: 11996
01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] frame P:32 Avg QP:26.90 size: 217
01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] frame B:25 Avg QP:32.73 size: 39
01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] consecutive B-frames: 20.0% 80.0%
01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] mb I I16..4: 74.1% 17.0% 8.9%
01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] mb P I16..4: 0.7% 0.1% 0.0% P16..4: 2.0% 0.3% 0.2% 0.0% 0.0% skip:96.6%
01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] mb B I16..4: 0.0% 0.0% 0.0% B16..8: 1.2% 0.0% 0.0% direct: 0.1% skip:98.8% L0: 5.5% L1:94.5% BI: 0.0%
01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] final ratefactor: 22.43
01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] 8x8 transform intra:16.9% inter:51.1%
01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] coded y,uvDC,uvAC intra: 12.8% 27.2% 24.4% inter: 0.3% 0.6% 0.0%
01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] i16 v,h,dc,p: 95% 5% 0% 0%
01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 2% 30% 60% 0% 1% 0% 2% 0% 4%
01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 7% 58% 10% 2% 4% 2% 9% 1% 8%
01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] i8c dc,h,v,p: 14% 81% 3% 3%
01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] Weighted P-Frames: Y:0.0% UV:0.0%
01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] ref P L0: 81.2% 16.6% 1.8% 0.4%
01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] ref B L0: 70.8% 29.2%
01-01 06:34:43.650: I/stderr(6603): [libx264 @ 0xdd2040] kb/s:287.21Edit :
I want to know what determines rate factor ? Is it relevant to fps ?
What is QP and it’s relation with rate factor ?Thank You !!
-
AsyncTask publishProgress() does not update progress ffmpeg android
7 février 2014, par jayI am using ffmpeg commands for processing media files.In doInBackground() method i have started the process and every time i get the duration , time values and grabbing progress using time and duration and send progress to publishProgress(progress).When i tested on google nexus(android 4.4 kitkat) it is updating progress dialog correctly but this won't happen in below android 4.4 devices.It is updating with an eye blink of time after completion of the process.
Here is my code :protected String doInBackground(String... params) {
// TODO Auto-generated method stub
try {
proc = mProcess.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
processDuration(proc.getErrorStream());
// Wait for process to exit
int exitCode = 1; // Assume error
try {
exitCode = proc.waitFor();
} catch (InterruptedException e) {
Log.e(TAG, "Process interrupted!", e);
}
onExit(exitCode);
return null;
}
private void onExit(int exitCode) {
// TODO Auto-generated method stub
Log.i("exit code >>>>>>>>..", ""+exitCode);
}
private void processDuration(InputStream errorStream) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(errorStream);
// Find duration
Pattern durPattern = Pattern.compile("(?<=Duration: )[^,]*");
String dur = sc.findWithinHorizon(durPattern, 0);
if (dur==null) throw new RuntimeException("Could not parse duration.");
String[] hms = dur.split(":");
try{
totalSecs= Integer.parseInt(hms[0]) * 3600 + Integer.parseInt(hms[1]) * 60 + Double.parseDouble(hms[2]);
Log.i(" progress>>>>>>>>>>>>>",""+totalSecs);
}catch(NumberFormatException e){
}
Pattern timePattern = Pattern.compile("(?<=time=)[\\d:.]*");
String match= sc.findWithinHorizon(timePattern, 0);
while (null != (match = sc.findWithinHorizon(timePattern, 0))) {
hms = match.split(":");
try{
processedSecs= Integer.parseInt(hms[0]) * 3600 + Integer.parseInt(hms[1]) * 60 + Double.parseDouble(hms[2]);
}catch(NumberFormatException e){
}
progress = processedSecs / totalSecs;
final int finalProgress=(int)(progress*100);
try {
publishProgress(""+finalProgress);
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
publishProgress(""+100);
}
protected void onPostExecute(String result) {
super.onPostExecute(result);
mProgressDialog.dismiss();
}
protected void onPreExecute() {
super.onPreExecute();
showDialog(DIALOG_DOWNLOAD_PROGRESS);
}
protected void onProgressUpdate(String... progress) {
mProgressDialog.setProgress(Integer.parseInt(progress[0]));
super.onProgressUpdate(progress);
}
public Dialog showDialog(int id) {
// TODO Auto-generated method stub
switch (id) {
case DIALOG_DOWNLOAD_PROGRESS:
mProgressDialog = new ProgressDialog(context);
mProgressDialog.setMessage(loading process..");
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
mProgressDialog.setCancelable(false);
mProgressDialog.setMax(100);
mProgressDialog.setCanceledOnTouchOutside(false);
mProgressDialog.show();
return mProgressDialog;
default:
return null;
}
}
}Thanks for Your Help..
Please help me out this problem..........