
Recherche avancée
Médias (1)
-
Rennes Emotion Map 2010-11
19 octobre 2011, par
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (85)
-
Qualité du média après traitement
21 juin 2013, parLe bon réglage du logiciel qui traite les média est important pour un équilibre entre les partis ( bande passante de l’hébergeur, qualité du média pour le rédacteur et le visiteur, accessibilité pour le visiteur ). Comment régler la qualité de son média ?
Plus la qualité du média est importante, plus la bande passante sera utilisée. Le visiteur avec une connexion internet à petit débit devra attendre plus longtemps. Inversement plus, la qualité du média est pauvre et donc le média devient dégradé voire (...) -
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
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.
Sur d’autres sites (8628)
-
Stream video using cloudfront and ffmpeg only
7 janvier 2014, par pkumarI'm new to web streaming and was doing some experiments. I was wondering if it is possible stream video using ffmpeg and AWS Cloudfront. I've following things in place :
1. Cloudfront http and rtmp instance
2. Ubuntu as OS
3. A foscam ip camera at http://xxx.xxxx.net:9002 which can be accessed using url http://xxx.xxxx.net:9002/videostream.cgi?user=xxxx&password=xxxx
4. jwplayerI used following using ffmpeg to stream data using cloudfront :
ffmpeg -f mjpeg -i 'http://xxx.xxx.net:9002/videostream.cgi?user=xxx&pwd=xxxx' -vcodec libx264 -crf 20 -preset veryfast -minrate 150k -maxrate 500k -s 960x540 -acodec libfaac -ar 44100 -ab 96000 -threads 0 -f flv - | tee name.flv | ffmpeg -i - -codec copy -f flv -metadata streamName=livestream rtmp://xxxxx.cloudfront.net/
To test the ffmpeg command above, I setup a crtmpserver on local machine and replaced rtmp ://xxxxx.cloudfront.net/ with tcp ://0.0.0.0:6666. This worked fine and I could view the live stream on jwplayer once I specified the crtmpserver url for jwplayer.
So, if it is possible, I need to do the following in descending order of preference :
1. Stream video directly to cloudfront and access it using jwplayer using ffmpeg.
2. Save video to S3 bucket using ffmpeg.From documentations, streaming can be done using Adobe media server, Wowza etc. I was just wondering if this can be achieved using ffmpeg and cloudfront only.
-
FFMPEG decoding artifacts between keyframes
13 avril 2015, par OddlyOrdinaryI’m currently experiencing artifacts when decoding video using ffmpegs api. On what I would assume to be intermediate frames, artifacts build slowly only from active movement in the frame. These artifacts build for 50-100 frames until I assume a keyframe resets them. Frames are then decoded correctly and the artifacts proceed to build again.
One thing that is bothering me is I have a few video samples that are 30fps(h264) that work correctly, but all of my 60fps videos(h264) experience the problem.
I don’t currently have enough reputation to post an image, so hopefully this link will work.
http://i.imgur.com/PPXXkJc.jpgint numBytes;
int frameFinished;
AVFrame* decodedRawFrame;
AVFrame* rgbFrame;
//Enum class for decoding results, used to break decode loop when a frame is gathered
DecodeResult retResult = DecodeResult::Fail;
decodedRawFrame = av_frame_alloc();
rgbFrame = av_frame_alloc();
if (!decodedRawFrame) {
fprintf(stderr, "Could not allocate video frame\n");
return DecodeResult::Fail;
}
numBytes = avpicture_get_size(PIX_FMT_RGBA, mCodecCtx->width,mCodecCtx->height);
uint8_t* buffer = (uint8_t *)av_malloc(numBytes*sizeof(uint8_t));
avpicture_fill((AVPicture *) rgbFrame, buffer, PIX_FMT_RGBA, mCodecCtx->width, mCodecCtx->height);
AVPacket packet;
while(av_read_frame(mFormatCtx, &packet) >= 0 && retResult != DecodeResult::Success)
{
// Is this a packet from the video stream?
if (packet.stream_index == mVideoStreamIndex)
{
// Decode video frame
int decodeValue = avcodec_decode_video2(mCodecCtx, decodedRawFrame, &frameFinished, &packet);
// Did we get a video frame?
if (frameFinished)// && rgbFrame->pict_type != AV_PICTURE_TYPE_NONE )
{
// Convert the image from its native format to RGB
int SwsFlags = SWS_BILINEAR;
// Accurate round clears up a problem where the start
// of videos have green bars on them
SwsFlags |= SWS_ACCURATE_RND;
struct SwsContext *ctx = sws_getCachedContext(NULL, mCodecCtx->width, mCodecCtx->height, mCodecCtx->pix_fmt, mCodecCtx->width, mCodecCtx->height,
PIX_FMT_RGBA, SwsFlags, NULL, NULL, NULL);
sws_scale(ctx, decodedRawFrame->data, decodedRawFrame->linesize, 0, mCodecCtx->height, rgbFrame->data, rgbFrame->linesize);
//if(count%5 == 0 && count < 105)
// DebugSavePPMImage(rgbFrame, mCodecCtx->width, mCodecCtx->height, count);
++count;
// Viewable frame is a struct to hold buffer and frame together in a queue
ViewableFrame frame;
frame.buffer = buffer;
frame.frame = rgbFrame;
mFrameQueue.push(frame);
retResult = DecodeResult::Success;
sws_freeContext(ctx);
}
}
// Free the packet that was allocated by av_read_frame
av_free_packet(&packet);
}
// Check for end of file leftover frames
if(retResult != DecodeResult::Success)
{
int result = av_read_frame(mFormatCtx, &packet);
if(result < 0)
isEoF = true;
av_free_packet(&packet);
}
// Free the YUV frame
av_frame_free(&decodedRawFrame);I’m attempting to build a queue of the decoded frames that I then use and free as needed. Is my seperation of the frames causing the intermediate frames to be decoded incorrectly ? I also break the decoding loop once I’ve successfully gathered a frame(Decode::Success, most examples I’ve seen tend to loop through the whole video.
All codec contect, video stream information, and format contexts are setup up exactly as shown in the main function of https://github.com/chelyaev/ffmpeg-tutorial/blob/master/tutorial01.c
Any suggestions would be greatly appreciated.
-
Merge commit ’eef9f06508354d1c7d5624c1c18997e7974288f1’
16 février 2016, par Derek BuitenhuisMerge commit ’eef9f06508354d1c7d5624c1c18997e7974288f1’
This commit is a no-nop.
* commit ’eef9f06508354d1c7d5624c1c18997e7974288f1’ :
avplay : Allow to override the codec
avplay : Statically allocate the player state
avplay : Rename cur_stream to player
avplay : Rename VideoState to PlayerState
avplay : Allocate the refresh thread next to the decode thread
avplay : Move the stream setup in the main threadMerged-by : Derek Buitenhuis <derek.buitenhuis@gmail.com>