
Recherche avancée
Médias (1)
-
Géodiversité
9 septembre 2011, par ,
Mis à jour : Août 2018
Langue : français
Type : Texte
Autres articles (45)
-
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir -
Librairies et binaires spécifiques au traitement vidéo et sonore
31 janvier 2010, parLes logiciels et librairies suivantes sont utilisées par SPIPmotion d’une manière ou d’une autre.
Binaires obligatoires FFMpeg : encodeur principal, permet de transcoder presque tous les types de fichiers vidéo et sonores dans les formats lisibles sur Internet. CF ce tutoriel pour son installation ; Oggz-tools : outils d’inspection de fichiers ogg ; Mediainfo : récupération d’informations depuis la plupart des formats vidéos et sonores ;
Binaires complémentaires et facultatifs flvtool2 : (...) -
Support audio et vidéo HTML5
10 avril 2011MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)
Sur d’autres sites (8320)
-
H.264 and VP8 for still image coding : WebP ?
JPEG is a very old lossy image format. By today’s standards, it’s awful compression-wise : practically every video format since the days of MPEG-2 has been able to tie or beat JPEG at its own game. The reasons people haven’t switched to something more modern practically always boil down to a simple one — it’s just not worth the hassle. Even if JPEG can be beaten by a factor of 2, convincing the entire world to change image formats after 20 years is nigh impossible. Furthermore, JPEG is fast, simple, and practically guaranteed to be free of any intellectual property worries. It’s been tried before : JPEG-2000 first, then Microsoft’s JPEG XR, both tried to unseat JPEG. Neither got much of anywhere.
Now Google is trying to dump yet another image format on us, “WebP”. But really, it’s just a VP8 intra frame. There are some obvious practical problems with this new image format in comparison to JPEG ; it doesn’t even support all of JPEG’s features, let alone many of the much-wanted features JPEG was missing (alpha channel support, lossless support). It only supports 4:2:0 chroma subsampling, while JPEG can handle 4:2:2 and 4:4:4. Google doesn’t seem interested in adding any of these features either.
But let’s get to the meat and see how these encoders stack up on compressing still images. As I explained in my original analysis, VP8 has the advantage of H.264′s intra prediction, which is one of the primary reasons why H.264 has such an advantage in intra compression. It only has i4x4 and i16x16 modes, not i8x8, so it’s not quite as fancy as H.264′s, but it comes close.
The test files are all around 155KB ; download them for the exact filesizes. For all three, I did a binary search of quality levels to get the file sizes close. For x264, I encoded with
--tune stillimage --preset placebo
. For libvpx, I encoded with--best
. For JPEG, I encoded with ffmpeg, then applied jpgcrush, a lossless jpeg compressor. I suspect there are better JPEG encoders out there than ffmpeg ; if you have one, feel free to test it and post the results. The source image is the 200th frame of Parkjoy, from derf’s page (fun fact : this video was shot here ! More info on the video here.).Files : (x264 [154KB], vp8 [155KB], jpg [156KB])
Results (decoded to PNG) : (x264, vp8, jpg)
This seems rather embarrassing for libvpx. Personally I think VP8 looks by far the worst of the bunch, despite JPEG’s blocking. What’s going on here ? VP8 certainly has better entropy coding than JPEG does (by far !). It has better intra prediction (JPEG has just DC prediction). How could VP8 look worse ? Let’s investigate.
VP8 uses a 4×4 transform, which tends to blur and lose more detail than JPEG’s 8×8 transform. But that alone certainly isn’t enough to create such a dramatic difference. Let’s investigate a hypothesis — that the problem is that libvpx is optimizing for PSNR and ignoring psychovisual considerations when encoding the image… I’ll encode with
--tune psnr --preset placebo
in x264, turning off all psy optimizations.Files : (x264, optimized for PSNR [154KB]) [Note for the technical people : because adaptive quantization is off, to get the filesize on target I had to use a CQM here.]
Results (decoded to PNG) : (x264, optimized for PSNR)
What a blur ! Only somewhat better than VP8, and still worse than JPEG. And that’s using the same encoder and the same level of analysis — the only thing done differently is dropping the psy optimizations. Thus we come back to the conclusion I’ve made over and over on this blog — the encoder matters more than the video format, and good psy optimizations are more important than anything else for compression. libvpx, a much more powerful encoder than ffmpeg’s jpeg encoder, loses because it tries too hard to optimize for PSNR.
These results raise an obvious question — is Google nuts ? I could understand the push for “WebP” if it was better than JPEG. And sure, technically as a file format it is, and an encoder could be made for it that’s better than JPEG. But note the word “could”. Why announce it now when libvpx is still such an awful encoder ? You’d have to be nuts to try to replace JPEG with this blurry mess as-is. Now, I don’t expect libvpx to be able to compete with x264, the best encoder in the world — but surely it should be able to beat an image format released in 1992 ?
Earth to Google : make the encoder good first, then promote it as better than the alternatives. The reverse doesn’t work quite as well.
[155KB] -
ffmpeg Output file #0 does not contain any stream when trying to access 1 of 2 audio streams
7 juillet 2019, par nulltorpedoffmpeg -i input.mkv -map 0:2 -c copy -strict -2 audio.mkv
Hi I have the above command. The output shows that there are 2 audio streams. I want to copy just the ac3 audio (actually I want to convert it but even this copy does not work). I have truncated the output print where there is metadata
NEW updated sample with full log which results in same message
ffmpeg -i input.mka -map 0:0 -c:a libfdk_aac aac_out.m4a
ffmpeg version 2.7.1 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.9.3 (crosstool-NG 1.20.0) 20150311 (prerelease)
configuration: --prefix=/usr --incdir='${prefix}/include/ffmpeg' --arch=i686 --target-os=linux --cross-prefix=/usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu- --enable-cross-compile --enable-optimizations --enable-pic --enable-gpl --enable-shared --disable-static --enable-version3 --enable-nonfree --enable-libfaac --enable-encoders --enable-pthreads --disable-bzlib --disable-protocol=rtp --disable-muxer=image2 --disable-muxer=image2pipe --disable-swscale-alpha --disable-ffserver --disable-ffplay --disable-devices --disable-bzlib --disable-altivec --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libmp3lame --disable-vaapi --disable-decoder=amrnb --disable-decoder=ac3 --disable-decoder=ac3_fixed --disable-encoder=zmbv --disable-encoder=dca --disable-encoder=ac3 --disable-encoder=ac3_fixed --disable-encoder=eac3 --disable-decoder=dca --disable-decoder=eac3 --disable-decoder=truehd --cc=/usr/local/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-ccache-gcc --enable-yasm --enable-libx264 --enable-encoder=libx264
libavutil 54. 27.100 / 54. 27.100
libavcodec 56. 41.100 / 56. 41.100
libavformat 56. 36.100 / 56. 36.100
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 16.101 / 5. 16.101
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 2.100 / 1. 2.100
libpostproc 53. 3.100 / 53. 3.100
Input #0, matroska,webm, from '/volume1/..../input.mka':
Metadata:
encoder : libebml v1.3.9 + libmatroska v1.5.2
creation_time : 2019-07-07 06:19:20
Duration: 02:29:21.98, start: 0.000000, bitrate: 640 kb/s
Stream #0:0(eng): Audio: ac3, 48000 Hz, 5.1(side), 640 kb/s
Metadata:
BPS-eng : 640000
DURATION-eng : 02:29:21.984000480
NUMBER_OF_FRAMES-eng: 280062
NUMBER_OF_BYTES-eng: 716958720
_STATISTICS_WRITING_APP-eng: mkvmerge v35.0.0 ('All The Love In The World') 64-bit
_STATISTICS_WRITING_DATE_UTC-eng: 2019-07-07 06:19:20
_STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES
Output #0, ipod, to 'aac_out.m4a':
Metadata:
encoder : libebml v1.3.9 + libmatroska v1.5.2
Output file #0 does not contain any stream -
Anomalie #3625 (Nouveau) : Utilisation de classe "namespacée" en tant que filtre.
16 décembre 2015, par Julien CITERNEHello World,
J’ai depuis longtemps déjà utilisé certaines méthodes de classes en tant que filtre. Quelque chose dans le style
[(#REM|MaClasse::MaMethod)]
et pour ça aucun soucis.Cependant, j’ai eu dernièrement besoin de recourir à une classe d’une librairie, cette classe possédant un namespace.
L’appel "Classique"[(#REM|MaClasse::MaMethod)]
me renvoie une erreur de squelette ( rien d’anormal selon moi ), mais l’appel à ma Classe via l’utilisation du namespace en fait de même :[(#REM|NameSpace\MaClasse::MaMethod)]
J’ai pourtant remarqué dans cette fonction ( => https://core.spip.net/projects/spip/repository/entry/spip/ecrire/inc/filtres.php#L76 ) que l’utilisation des namespace devait être prise en charge.
Seulement voilà, j’ai noté 2 soucis potentiels.
1 ) - Dans la 1ère partie du test ( l.100 ), cette Regex
preg_match("/^(\w*)::(\w*)$/", $f, $regs)
ne match aucun backspace. Dès lors, impossible de détecter un namespace.
2 ) - La seconde partie du testand is_callable(array($regs[1], $regs[2]))
ne fonctionne qu’avec une classe sans namespace, ou $regs1 = MaClass et $regs2 = MaMethodUne correction possible serait de rajouter un test ( elseif, if, etc. ) pour ces cas là avec un contenu de test semblable ?
preg_match("/^([a-zA-Z_\\\\]*?)\\\\?([a-zA-Z_]*)::([a-zA-Z_]*)$/", 'NameSpace\MaClass::MaMethod', $regs); // Nb le quadruple backspace est volontaire pour une utilisation en php<br />$className = $regs[1].'\\'.$regs[2]; // $regs[1] = NameSpace et $regs[2] = MaClass <br />is_callable(array(new $className(), $regs[3])); // true si la fonctione existe. Noter qu'on passe à is_callable une instance de la classe ? ( cf.http://php.net/manual/fr/function.is-callable.php )<br />
Peut-être est-ce hors sujet ? Quoi qu’il en soit le débat ( et l’issue ) sont ouverts, je vous laisserais le soin de les fermer si ce n’est pas pertinent.
Cordialement.
Witi