
Recherche avancée
Médias (1)
-
Richard Stallman et le logiciel libre
19 octobre 2011, par
Mis à jour : Mai 2013
Langue : français
Type : Texte
Autres articles (79)
-
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...) -
Support de tous types de médias
10 avril 2011Contrairement à beaucoup de logiciels et autres plate-formes modernes de partage de documents, MediaSPIP a l’ambition de gérer un maximum de formats de documents différents qu’ils soient de type : images (png, gif, jpg, bmp et autres...) ; audio (MP3, Ogg, Wav et autres...) ; vidéo (Avi, MP4, Ogv, mpg, mov, wmv et autres...) ; contenu textuel, code ou autres (open office, microsoft office (tableur, présentation), web (html, css), LaTeX, Google Earth) (...)
-
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 (8832)
-
avcodec/snowenc : change log level for iterative ME information to debug level
10 mai 2015, par Michael Niedermayer -
Revision eb8c667570 : Force_split on 16x16 blocks in variance partition. Force split on 16x16 block (
18 mars 2015, par MarcoChanged Paths :
Modify /vp9/common/vp9_rtcd_defs.pl
Modify /vp9/encoder/vp9_avg.c
Modify /vp9/encoder/vp9_encodeframe.c
Modify /vp9/encoder/vp9_encoder.h
Modify /vp9/encoder/x86/vp9_avg_intrin_sse2.c
Force_split on 16x16 blocks in variance partition.Force split on 16x16 block (to 8x8) based on the minmax over the 8x8 sub-blocks.
Also increase variance threshold for 32x32, and add exit condiiton in
choose_partition
(with very safe threshold) based on sad used to select reference frame.Some visual improvement near moving boundaries.
Average gain in psnr/ssim : 0.6%, some clips go up 1 or 2%.
Encoding time increase (due to more 8x8 blocks) from 1-4%, depending on clip.Change-Id : I4759bb181251ac41517cd45e326ce2997dadb577
-
ffmpeg library performance for decoding h.264 for embedded device
2 avril 2015, par pasifusI have some confuse when tried to compile and run decode h.264 on ARM and MIPS architecture.
I have two embedded devices. I tired to run simple code that read h264 format from file and decode it to h264 in loop in maximum speed (without sleep between frames)
I found that it too slow in there devices.
I tested HD video (720p/25fps)- MIPS32® 1004K (700MHz) it was 4 fps average.
- Raspberry Pi Model B (700MHz) it also was 4 fps average. (i know that raspberry have GPU to decoding/encoding)
A also check it on my virtual machine on ubuntu i686 (1300MHz) and it was 200 fps average.
The question : why it so different preference ? Somebody know how to increase decoding preference on MIPS32® 1004K architecture ?
#include
#include
#include
#include
#include <sys></sys>time.h>
#include
#include "libavcodec/avcodec.h"
#include "libavutil/mathematics.h"
#define INBUF_SIZE 80000
static long get_time_diff(struct timeval time_now) {
struct timeval time_now2;
gettimeofday(&time_now2,0);
return time_now2.tv_sec*1.e6 - time_now.tv_sec*1.e6 + time_now2.tv_usec - time_now.tv_usec;
}
int main(int argc, char **argv)
{
AVCodec *codec;
AVCodecContext *c= NULL;
AVCodecParserContext *parser = NULL;
int frame, got_picture, len2, len;
const char *filename;
FILE *f;
AVFrame *picture;
char *arghwtf = malloc(INBUF_SIZE);
uint64_t in_len;
int pts, dts;
struct timeval t,t2;
float inv_fps = 1e6/23.98;
AVPacket avpkt;
// register all the codecs
avcodec_register_all();
// log level
av_log_set_level(AV_LOG_PANIC|AV_LOG_FATAL|AV_LOG_ERROR|AV_LOG_WARNING);
filename = argv[1];
av_init_packet(&avpkt);
printf("Decoding file %s...\n", filename);
// find the H.264 video decoder
codec = avcodec_find_decoder(CODEC_ID_H264);
if (!codec)
{
fprintf(stderr, "codec not found\n");
exit(1);
}
c = avcodec_alloc_context3(codec);
picture = avcodec_alloc_frame();
// skiploopfilter=all
c->skip_loop_filter = 48;
AVDictionary* dictionary = NULL;
if (avcodec_open2(c, codec, &dictionary) < 0)
{
fprintf(stderr, "could not open codec\n");
exit(1);
}
// the codec gives us the frame size, in samples
parser = av_parser_init(c->codec_id);
parser->flags |= PARSER_FLAG_ONCE;
f = fopen(filename, "rb");
if (!f)
{
fprintf(stderr, "could not open %s\n", filename);
exit(1);
}
frame = 0;
gettimeofday(&t, 0);
if(fread(arghwtf, 1, INBUF_SIZE, f) == 0)
{
exit(1);
}
in_len = 80000;
gettimeofday(&t2, 0);
while (in_len > 0 && !feof(f))
{
len = av_parser_parse2(parser, c, &avpkt.data, &avpkt.size, arghwtf, in_len, pts, dts, AV_NOPTS_VALUE);
len2 = avcodec_decode_video2(c, picture, &got_picture, &avpkt);
if (len2 < 0) {
fprintf(stderr, "Error while decoding frame %d\n", frame);
exit(1);
}
if (got_picture)
{
fprintf(stderr, "\rDisplaying %c %dx%d :frame %3d (%02d:%03d)...", av_get_picture_type_char(picture->pict_type), c->width, c->height, frame, (int)(get_time_diff(t)/1000000), (int)((get_time_diff(t)/1000)%1000));
fflush(stderr);
frame++;
}
memcpy(arghwtf, arghwtf + len, 80000-len);
fread(arghwtf + 80000 - len, 1, len, f);
}
fclose(f);
avcodec_close(c);
av_free(c);
av_free(picture);
printf("\n");
printf("Avarage fps: %d\n", (int)(((double)frame)/(double)(get_time_diff(t)/1000)*1000));
return 0;
}