
Recherche avancée
Médias (1)
-
SWFUpload Process
6 septembre 2011, par
Mis à jour : Septembre 2011
Langue : français
Type : Texte
Autres articles (32)
-
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 (...) -
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 : (...) -
De l’upload à la vidéo finale [version standalone]
31 janvier 2010, parLe chemin d’un document audio ou vidéo dans SPIPMotion est divisé en trois étapes distinctes.
Upload et récupération d’informations de la vidéo source
Dans un premier temps, il est nécessaire de créer un article SPIP et de lui joindre le document vidéo "source".
Au moment où ce document est joint à l’article, deux actions supplémentaires au comportement normal sont exécutées : La récupération des informations techniques des flux audio et video du fichier ; La génération d’une vignette : extraction d’une (...)
Sur d’autres sites (5292)
-
nomenclature #2319 : est trop verbeux
8 février 2012, par Michel FraisseIntroduire une nouvelle chaine juste pour le français c’est beaucoup, mais après vérification en anglais la chaine renvoie à homepage, du coup ça se justifie sans doute fr-> Accueil en-> Home Faut voir avec les autres langues. Tant qu’on y est pourquoi pas renvoyer en plus à l’icône universelle de (...)
-
How do i install ffmpeg on windows 7 [migrated]
24 janvier 2012, par ubercoolukIm using windows 7 and Zend server for my php.I have fed up completely searching and trying every methods of installation found on internet.luckly i installed it well on my ubuntu machine at my home.Hoping to find a good solution i mean clear way of installing ffmpeg in windows 7
-
FFmpeg : undefined references to av_frame_alloc()
6 août 2014, par dontrythisathomeI want to get into FFmpeg developing and i started following these samples tutorial here : here
I started with the first tutorial - tutorial01.c - but i run into this problem ’undefined references to av_frame_alloc()’.
I’m on Ubuntu 12.04 LTS.
This is my program :
/*
* File: main.c
* Author: dontrythisathome
*
* Created on 3 giugno 2014, 23.02
*/
#include
#include <libavcodec></libavcodec>avcodec.h>
#include <libavformat></libavformat>avformat.h>
#include <libavutil></libavutil>frame.h>
#include <libswscale></libswscale>swscale.h>
/*
*
*/
void SaveFrame(AVFrame *pFrame, int width, int height, int iFrame)
{
FILE *pFile;
char szFilename[32];
int y;
//Apre il file
sprintf(szFilename, "frame%d.ppm", iFrame);
pFile=fopen(szFilename, "wb");
if(pFile==NULL)
{return; }
//Scrive l'intestazione del file ( Larghezza x Altezza su video)
fprintf(pFile, "P6\n%d %d\n255\n", width, height);
//Scrive i data pixel
for(y=0; ydata[0]+y*pFrame->linesize[0], 1, width*3, pFile);
}
//Chiude il file
fclose(pFile);
}
/*
*
*/
/*Main Function*/
int main(int argc, char *argv[])
{
AVFormatContext *pFormatCtx;
int i, videoStreamIdx;
AVCodecContext *pCodecCtx;
AVCodec *pCodec;
AVFrame *pFrame;
AVFrame *pFrameRGB;
AVPacket packet;
int frameFinished;
int numBytes;
uint8_t *buffer;
static struct SwsContext *img_convert_ctx;
if(argc < 2){
printf("Inserisci un file video\n");
return -1;
}
//Registra tutti i formati e i codec
av_register_all();
//Apre il file video
if(avformat_open_input(&pFormatCtx, argv[1], NULL, NULL) != 0)
{return -1;} //Impossibile aprire il file
//Recupera le informazioni dello stream
if(avformat_find_stream_info(pFormatCtx, NULL) < 0)
{return -1;} // Couldn't find stream information
//Versa le informazioni del file sullo standard error
av_dump_format(pFormatCtx, 0, argv[1], 0);
//Trova il primo stream video
videoStreamIdx=-1;
for(i=0; inb_streams; i++)
{
if(pFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO)
{ videoStreamIdx=i;
break;}
}
if(videoStreamIdx==-1)
return -1; // Impossibile trovare lo stream video
// Punta al contenuto del codec per lo stream video
pCodecCtx = pFormatCtx->streams[videoStreamIdx]->codec;
// Trova il decoder per lo stream video
pCodec = avcodec_find_decoder(pCodecCtx->codec_id);
if(pCodec==NULL)
{
fprintf(stderr, "Codec Non Supportato!\n");
return -1; //Impossibile trovare il codec
}
//Apre il codec
if(avcodec_open2(pCodecCtx, pCodec, NULL) < 0)
{return -1;} //Impossibile aprire il codec
//Alloca il frame video
pFrame = av_frame_alloc();
//Alloca una struct AVFrame
pFrameRGB = av_frame_alloc();
if(pFrameRGB==NULL)
{return -1;}
//Determina la grandezza necessaria per il buffer e lo alloca
numBytes = avpicture_get_size(PIX_FMT_RGB24,
pCodecCtx->width,
pCodecCtx->height);
buffer = (uint8_t *) av_malloc(numBytes*sizeof(uint8_t));
//Assegna le parti appropriate del buffer sulla superficie dell'immagine in pFrameRGB
//Tenere presente che pFrameRGB è un AVFrame, ma AVFrame è una superset di AVPicture
avpicture_fill((AVPicture *)pFrameRGB, buffer, PIX_FMT_RGB24, pCodecCtx->width, pCodecCtx->height);
int w = pCodecCtx->width;
int h = pCodecCtx->height;
img_convert_ctx = sws_getContext(w, h, pCodecCtx->pix_fmt,
w, h, PIX_FMT_RGB24,
SWS_LANCZOS, NULL, NULL, NULL);
//Legge i frame e salva i primi 5 frame su disco
i=0;
while((av_read_frame(pFormatCtx, &packet)>=0) && (i<5))
{
//Questo è il packet dello stream video?
if(packet.stream_index==videoStreamIdx)
{
//Decodifica il frame video
avcodec_decode_video2(pCodecCtx, pFrame, &frameFinished, &packet);
//Si è riusiciti ad ottenere il frame video?
if(frameFinished)
{
i++;
sws_scale(img_convert_ctx, (const uint8_t * const *)pFrame->data,
pFrame->linesize, 0, pCodecCtx->height,
pFrameRGB->data, pFrameRGB->linesize);
SaveFrame(pFrameRGB, pCodecCtx->width, pCodecCtx->height, i);
}
}
//Libera il pacchetto che era allocato da av_read_frame
av_free_packet(&packet);
}
//Libera l'immagine RGB
av_free(buffer);
av_free(pFrameRGB);
//Libera il frame YUV
av_free(pFrame);
//Chiude il codec
avcodec_close(pCodecCtx);
//Chiude il file video
avformat_close_input(&pFormatCtx);
/*FINE PROGRAMMA*/
return 0;
}This is the build output :
"/usr/bin/make" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: ingresso nella directory "/home/dontrythisathome/Programmazione/C-C++/SimpleMediaPlayerForAndroid"
"/usr/bin/make" -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/simplemediaplayerforandroid
make[2]: ingresso nella directory "/home/dontrythisathome/Programmazione/C-C++/SimpleMediaPlayerForAndroid"
mkdir -p dist/Debug/GNU-Linux-x86
gcc -o dist/Debug/GNU-Linux-x86/simplemediaplayerforandroid build/Debug/GNU-Linux-x86/main.o -L/usr/lib/x86_64-linux-gnu -lavformat -lavcodec -lavutil -lswscale -lz -lbz2
build/Debug/GNU-Linux-x86/main.o: In function `main':
/home/dontrythisathome/Programmazione/C-C++/SimpleMediaPlayerForAndroid/main.c:105: undefined reference to `av_frame_alloc'
/home/dontrythisathome/Programmazione/C-C++/SimpleMediaPlayerForAndroid/main.c:108: undefined reference to `av_frame_alloc'
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-Linux-x86/simplemediaplayerforandroid] Errore 1
make[2]: uscita dalla directory "/home/dontrythisathome/Programmazione/C-C++/SimpleMediaPlayerForAndroid"
make[1]: *** [.build-conf] Errore 2
make[1]: uscita dalla directory "/home/dontrythisathome/Programmazione/C-C++/SimpleMediaPlayerForAndroid"
make: *** [.build-impl] Errore 2
BUILD FAILED (exit value 2, total time: 143ms)I also linked the correct library path and headers path because there is no error with that.
But when i try to build the program from the terminal with these commands :
gcc -o prog1 /home/dontrythisathome/Programmazione/C-C++/SimpleMediaPlayerForAndroid/main.c -lavformat -lavcodec -lavutil -lswscale -lz -lbz2
And the output is different :
/home/dontrythisathome/Programmazione/C-C++/SimpleMediaPlayerForAndroid/main.c:11:29: fatal error: libavutil/frame.h: File o directory non esistente
compilation terminated.The output says that there is no file or directory existing.
What is the problem ?