
Recherche avancée
Médias (1)
-
ED-ME-5 1-DVD
11 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Audio
Autres articles (88)
-
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 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 (...) -
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 (10689)
-
Multiple frames lost if I use av_read_frame in FFmpeg
12 juin 2015, par KrishnaI have an HEVC sequence with 3500 frames and I am writing a decoder for reading it (read frame by frame and dump to yuv). In my main(), I have a for loop that calls a decoder() 3500 times (I am assuming at this stage that the main() knows how many frames there are).
So, for every call to decoder(), I need a complete frame to be returned. This is what the decoder() looks like..
bool decode(pFormatCtx, pCodecCtx)
{
int gotaFrame=0;
while (gotaFrame==0) {
printf("1\t");
if ( !av_read_frame(pFormatCtx, &packet) ) {
if(packet.stream_index==videoStreamIndex) {
// try decoding
avcodec_decode_video2(pCodecCtx, pFrame, &gotaFrame, &packet);
if (gotaFrame) { // decode success.
printf("2\t");
// dump to yuv ... not shown here.
// cleanup
av_frame_unref(pFrame);
av_frame_free(&pFrame);
av_free_packet(&packet);
return true;
}
}
}
}
}The behavior is like this : 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 1 2 ...... it looks like it reads several frames before decoding one ? The first frame is an I-frame, so shouldn’t that be decoded right away ?
With this code, I end up losing the several frames (indicated by the series of 1s). Can someone help me out here ? Is there something I am doing wrong in my code ?
Update : the test clip is video-only. No audio.
-
Using ffmpeg avcodec_decode_video2 got_picture_ptr returns 0
3 septembre 2014, par kaikenI’m trying to playback the gopro live feed which consists of a series of very short .ts files encoded using H264. I tested it on videos with different containers (mkv,avi,mp4) and different codecs (MPEG4, H264, MSVIDEO1). However, the files from the gopro always returns
got_picture_ptr
as 0 fromavcodec_decode_video2
while the function returns the packet’s size. If I use ffplay or vlc it play the file without problem. I’m not sure what I’m doing wrong. I’m not very experienced with ffmpeg or video in general.Here is my test code. I based it off of this tutorial which is out of date but I was able to update the depreciated functions.
AVFormatContext *pFormatCtx = NULL;
AVCodecContext *pCodecCtx;
AVStream *pStream = NULL;
int videoStream;
AVCodec *pCodec;
AVFrame *pFrame=NULL, *pFrameRGB=NULL;
HBITMAP membmp;
int widht,height;
BYTE *membits;
int frameFinished;
AVPacket packet;
img_convert_ctx = NULL;
uint8_t *buffer;
int numBytes;
// Open video file
if(avformat_open_input(&pFormatCtx,params->fname,NULL,NULL)!=0)
return -1;
// Retrieve stream information
if(avformat_find_stream_info(pFormatCtx,NULL)<0)
return -1;
//av_dump_format(pFormatCtx, 0, path, 0);
// Find the first video stream
for(int i=0; inb_streams; i++)
if(pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_VIDEO)
{
pStream=pFormatCtx->streams[i];
videoStream = i;
break;
}
if(pStream==NULL)
return -1; // Didn't find a video stream
// Get a pointer to the codec context for the video stream
pCodecCtx=pStream->codec;
// Find the decoder for the video stream
pCodec=avcodec_find_decoder(pCodecCtx->codec_id);
if(pCodec==NULL) {
fprintf(stderr, "Unsupported codec!\n");
return -1; // Codec not found
}
// Open codec
if(avcodec_open2(pCodecCtx, pCodec, NULL)<0)
return -1;
// Allocate an AVFrame structure
pFrame=avcodec_alloc_frame();
pFrameRGB=avcodec_alloc_frame();
if(pFrameRGB==NULL)
return -1;
MakeBitmap(*params->memdc,membmp,(void**)&membits,pCodecCtx->width,pCodecCtx->height);
// Assign appropriate parts of buffer to image planes in pFrameRGB
// Note that pFrameRGB is an AVFrame, but AVFrame is a superset
// of AVPicture
avpicture_fill((AVPicture *)pFrameRGB, membits, PIX_FMT_RGB24,
pCodecCtx->width, pCodecCtx->height);
while (av_read_frame(pFormatCtx, &packet) >= 0)
{
// Is this a packet from the video stream?
if (packet.stream_index == videoStream)
{
// Decode video frame
int bytesUsed = avcodec_decode_video2(pCodecCtx, pFrame, &frameFinished, &packet);
// Did we get a video frame?
if(frameFinished)
{
//Do stuff with frame
}
}
// Free the packet that was allocated by av_read_frame
av_free_packet(&packet);
//if(i++>500)
// break;
}
DeleteObject(membmp);
// Free the frames
av_free(pFrameRGB);
av_free(pFrame);
// Close the codec
avcodec_close(pCodecCtx);
// Close the video file
avformat_close_input(&pFormatCtx);
return -1;For reference I’m doing this on Windows with the versions of the dlls :
- avcodec-56.dll
- avdevice-56.dll
- avfilter-5.dll
- avformat-56.dll
- avutil-54.dll
- postproc-53.dll
- swresample-1.dll
- swscale-3.dll
and sample video file https://www.dropbox.com/s/htlinnv3qk5dfiu/amba_hls-2.ts?dl=0
-
aws-lambda not recognizing ffmpeg command
28 août 2019, par JayAWS Lambda function running Python is not recognizing
-filter_complex
os.system(f"/tmp/ffmpeg -f lavfi -i color=black -i 2.gif -filter_complex [0][1]scale2ref[bg][gif];[bg]setsar=1[bg];[bg][gif]overlay=shortest=1 2.mp4")
Error from CloudWatch :
sh: -filter_complex: command not found
Running:
ffmpeg version N-48801-g06ba4783a0-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2019 the FFmpeg developersI think I know the problem. Somehow I need to put Quotes around :
"[0][1]scale2ref[bg][gif];[bg]setsar=1[bg];[bg][gif]overlay=shortest=1"