
Recherche avancée
Médias (3)
-
GetID3 - Bloc informations de fichiers
9 avril 2013, par
Mis à jour : Mai 2013
Langue : français
Type : Image
-
GetID3 - Boutons supplémentaires
9 avril 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Image
-
Collections - Formulaire de création rapide
19 février 2013, par
Mis à jour : Février 2013
Langue : français
Type : Image
Autres articles (112)
-
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
-
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page. -
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 (8274)
-
Adjust MP3 Files Volume and save it to new file [duplicate]
5 mai 2017, par Gio VannoThis question already has an answer here :
I’m trying to make an audio-editing app here
This program can adjust(increase and decrease) the mp3 file volume at the specific time(adjust start time and finish time, example : from 00:10 to 00:20) and we can save it to a new mp3 file.my questions is :
-Does ffmpeg work for it ?
-is there any alternative besides ffmpeg ?
Thank you
-
mov : Save number of stsd elements after stream extradata allocation
29 juin 2016, par Vittorio Giovara -
How to save image from the middle of a video ?
29 octobre 2017, par puppon -suI need to make a thumbnail for a video, to seek to the 25% of a video and save the image. Here is what I’m doing right now, but it only saves black image.
#include
#include <libavformat></libavformat>avformat.h>
#include <libavutil></libavutil>dict.h>
int main (int argc, char **argv)
{
av_register_all();
AVFormatContext *pFormatCtx = avformat_alloc_context();
int res;
res = avformat_open_input(&pFormatCtx, "test.mp4", NULL, NULL);
if (res) {
return res;
}
avformat_find_stream_info(pFormatCtx, NULL);
int64_t duration = pFormatCtx->duration;
// Find the first video stream
int videoStream=-1;
for(int i=0; inb_streams; i++) {
if(pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_VIDEO) {
videoStream=i;
break;
}
}
if(videoStream==-1) {
return -1;
}
AVCodecContext *pCodecCtxOrig = NULL;
// Get a pointer to the codec context for the video stream
pCodecCtxOrig=pFormatCtx->streams[videoStream]->codec;
AVCodec *pCodec = NULL;
// Find the decoder for the video stream
pCodec=avcodec_find_decoder(pCodecCtxOrig->codec_id);
if(pCodec==NULL) {
fprintf(stderr, "Unsupported codec!\n");
return -1; // Codec not found
}
AVCodecContext *pCodecCtx = NULL;
// Copy context
pCodecCtx = avcodec_alloc_context3(pCodec);
if(avcodec_copy_context(pCodecCtx, pCodecCtxOrig) != 0) {
fprintf(stderr, "Couldn't copy codec context");
return -1; // Error copying codec context
}
// Open codec
if(avcodec_open2(pCodecCtx, pCodec, NULL)<0) {
return -1; // Could not open codec
}
AVFrame *pFrame = NULL;
pFrame=av_frame_alloc();
AVFrame *pFrameRGB = NULL;
pFrameRGB=av_frame_alloc();
// Determine required buffer size and allocate buffer
int numBytes=avpicture_get_size(AV_PIX_FMT_RGB24, pCodecCtx->width,
pCodecCtx->height);
uint8_t *buffer = NULL;
buffer=(uint8_t *)av_malloc(numBytes*sizeof(uint8_t));
// Assign appropriate parts of buffer to image planes in pFrameRGB
// Note that pFrameRGB is an AVFrame, but AVFrame is a superset
// of AVPicture
res = avpicture_fill((AVPicture *)pFrameRGB, buffer, AV_PIX_FMT_RGB24,
pCodecCtx->width, pCodecCtx->height);
if (res<0) {
return;
}
// I've set this number randomly
res = av_seek_frame(pFormatCtx, videoStream, 20.0, AVSEEK_FLAG_FRAME);
if (res<0) {
return;
}
AVPacket packet;
while(1) {
av_read_frame(pFormatCtx, &packet);
if(packet.stream_index==videoStream) {
int frameFinished;
avcodec_decode_video2(pCodecCtx, pFrame, &frameFinished, &packet);
if(frameFinished) {
SaveFrame(pFrameRGB, pCodecCtx->width,
pCodecCtx->height);
break;
}
}
}
avformat_close_input(&pFormatCtx);
return 0;
}
void SaveFrame(AVFrame *pFrame, int width, int height) {
FILE *pFile;
char szFilename[] = "frame.ppm";
int y;
// Open file
pFile=fopen(szFilename, "wb");
if(pFile==NULL)
return;
// Write header
fprintf(pFile, "P6\n%d %d\n255\n", width, height);
// Write pixel data
for(y=0; ydata[0]+y*pFrame->linesize[0], 1, width*3, pFile);
// Close file
fclose(pFile);
}I was following this tutorial http://dranger.com/ffmpeg/tutorial01.html http://dranger.com/ffmpeg/tutorial07.html . It says that it was updated in 2015, but there already are some warnings about deprecated code, for example here :
pFormatCtx->streams[i]->codec
.I got video duration (in microseconds), but I don’t understand what I should send to
av_seek_frame
. Can I somehow use frame number for both duration and seeking, instead of time ?