
Advanced search
Medias (91)
-
Les Miserables
9 December 2019, by
Updated: December 2019
Language: français
Type: Textual
-
VideoHandle
8 November 2019, by
Updated: November 2019
Language: français
Type: Video
-
Somos millones 1
21 July 2014, by
Updated: June 2015
Language: français
Type: Video
-
Un test - mauritanie
3 April 2014, by
Updated: April 2014
Language: français
Type: Textual
-
Pourquoi Obama lit il mes mails?
4 February 2014, by
Updated: February 2014
Language: français
-
IMG 0222
6 October 2013, by
Updated: October 2013
Language: français
Type: Picture
Other articles (28)
-
Support audio et vidéo HTML5
10 April 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 (...) -
HTML5 audio and video support
13 April 2011, byMediaSPIP 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 (...) -
De l’upload à la vidéo finale [version standalone]
31 January 2010, byLe 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 (...)
On other websites (5880)
-
FFMPEG and DXVA2
11 September 2017, by BobnonoI’ve made a player for IP camera (fullHD H264) with FFMPEG
I code under windows with Qt.I need the lowest latency as possible and the best result I can get is done whith :- I got the packet with live555,
- decode with ffmpeg
- display it with SDL.
But with "slow" CPU I have lot of latency if the bitrate is too high or it can’t handle 1080p.
I really want to try hardware acceleration with DXVA2 to see if I can get better performance especially in slowest CPU.
But i really don’t know how to proceed. I have to build FFMPEG with —enable-dxva2 and —enable-hwaccel=h264_dxva2 ? or Zeranoe build
I have never use Direct X, do I need Direct X knowledge, or ffmpeg with —enable-dxva2 and —enable-hwaccel=h264_dxva2 care of everything ?Thank you
Edit :
Hello, I use this post to help me in my HW acceleration with FFMPEG
Failed to execute: 0x80070057, when decoding video via ffmpeg with dxva2I decode the packet with
avcodec_decode_video2(pCodecCtx, pFrame, &gotPic, &packet);
and I’m getting my decoded frame with
dxva2_retrieve_data_call(pCodecCtx, pFrame, &gotPic, &packet);
I tried to convert it
sws_scale(img_convert_affic, pFrame->data, pFrame->linesize, 0, pCodecCtx->height, pFrameRGB->data, pFrameRGB->linesize);
and copy the buffer to a Qimage
LastFrame=QImage(w,h,QImage::Format_RGB888);
for(int y=0;ydata[0]+y*pFrameRGB->linesize[0],w*3);I got my picture but with lot of artefact and after few seconds I got a segmentation fault in
dxva2_retrieve_data_call(pCodecCtx, pFrame, &gotPic, &packet);
Edit :
Problem solved i didn’t check if I got a picture before retreiving it.
But the performance are very poor on my desktop cmputer (intel core i5 650, 4GB RAM, ATI HD5800) it consumes 5% more of CPU, 3 times more RAM, and lot of corrupt frame.
It’s better on a newer computer, but soft decoder is better.
dxva2_retrieve_data_call and sws_swale consume lot of time when hwaccel is enabled ...Is there a way to display NV12 picture in Qt (no sws_scale conversion) and there is a way to optimise dxva_retrieve_data_call ?
-
FFMPEG and DXVA2
5 February 2016, by BobnonoI’ve made a player for IP camera (fullHD H264) with FFMPEG
I code under windows with Qt.I need the lowest latency as possible and the best result I can get is done whith :- I got the packet with live555,
- decode with ffmpeg
- display it with SDL.
But with "slow" CPU I have lot of latency if the bitrate is too high or it can’t handle 1080p.
I really want to try hardware acceleration with DXVA2 to see if I can get better performance especially in slowest CPU.
But i really don’t know how to proceed. I have to build FFMPEG with —enable-dxva2 and —enable-hwaccel=h264_dxva2 ? or Zeranoe build
I have never use Direct X, do I need Direct X knowledge, or ffmpeg with —enable-dxva2 and —enable-hwaccel=h264_dxva2 care of everything ?Thank you
Edit :
Hello, I use this post to help me in my HW acceleration with FFMPEG
Failed to execute: 0x80070057, when decoding video via ffmpeg with dxva2I decode the packet with
avcodec_decode_video2(pCodecCtx, pFrame, &gotPic, &packet);
and I’m getting my decoded frame with
dxva2_retrieve_data_call(pCodecCtx, pFrame, &gotPic, &packet);
I tried to convert it
sws_scale(img_convert_affic, pFrame->data, pFrame->linesize, 0, pCodecCtx->height, pFrameRGB->data, pFrameRGB->linesize);
and copy the buffer to a Qimage
LastFrame=QImage(w,h,QImage::Format_RGB888);
for(int y=0;ydata[0]+y*pFrameRGB->linesize[0],w*3);I got my picture but with lot of artefact and after few seconds I got a segmentation fault in
dxva2_retrieve_data_call(pCodecCtx, pFrame, &gotPic, &packet);
Edit :
Problem solved i didn’t check if I got a picture before retreiving it.
But the performance are very poor on my desktop cmputer (intel core i5 650, 4GB RAM, ATI HD5800) it consumes 5% more of CPU, 3 times more RAM, and lot of corrupt frame.
It’s better on a newer computer, but soft decoder is better.
dxva2_retrieve_data_call and sws_swale consume lot of time when hwaccel is enabled ...Is there a way to display NV12 picture in Qt (no sws_scale conversion) and there is a way to optimise dxva_retrieve_data_call ?
-
skip frame rendering if falling behind
9 November 2016, by BrannonI have the code below that uses ffmpeg libraries (v3.1.4 with the Autogen wrapper) to render RTSP video in my application. The code works very well generally. However, the
receptical.Write
method is not particularly performant. On slow machines my video rendering starts to fall behind. Eventually my buffers fill up and I start to see video corruption. How can I change the code below to skip frames when it starts to fall behind? If there are multiple frames ready, I really only care to show the frame most recently available — this is live video after all. I believe that theavcodec_send_packet
andavcodec_receive_frame
methods are approximately 1-to-1.while (!token.IsCancellationRequested)
{
if (ffmpeg.av_read_frame(pFormatContext, pPacket) != 0)
{
// end of the stream
ffmpeg.av_packet_unref(pPacket);
ffmpeg.av_frame_unref(pDecodedFrame);
break;
}
if (pPacket->stream_index != pStream->index || (pPacket->flags & ffmpeg.AV_PKT_FLAG_CORRUPT) > 0)
{
// this should never happen; we only subscribe to one stream
// and I believe corrupt packets are automatically discarded
ffmpeg.av_packet_unref(pPacket);
ffmpeg.av_frame_unref(pDecodedFrame);
continue;
}
var sendResult = ffmpeg.avcodec_send_packet(pCodecContext, pPacket);
if (sendResult < 0)
{
// one of the possible results is a "buffer full", but I don't think that should happen as long as we call 1-to-1 receive_frame
ffmpeg.av_packet_unref(pPacket);
ffmpeg.av_frame_unref(pDecodedFrame);
_logger.Warn("Failure in FFmpeg avcodec_send_packet: " + sendResult);
break;
}
while (ffmpeg.avcodec_receive_frame(pCodecContext, pDecodedFrame) == 0)
{
var src = &pDecodedFrame->data0;
var dst = &pConvertedFrame->data0;
var srcStride = pDecodedFrame->linesize;
var dstStride = pConvertedFrame->linesize;
ffmpeg.sws_scale(pConvertContext, src, srcStride, 0, height, dst, dstStride);
sbyte* convertedFrameAddress = pConvertedFrame->data0;
int linesize = dstStride[0];
if (receptical == null)
{
receptical = writableBitampCreationCallback.Invoke(new DetectedImageDimensions {Width = width, Height = height, Format = DetectedPixelFormat.Bgr24, Linesize = linesize});
}
var imageBufferPtr = new IntPtr(convertedFrameAddress);
receptical.Write(width, height, imageBufferPtr, linesize);
ffmpeg.av_frame_unref(pDecodedFrame);
}
ffmpeg.av_packet_unref(pPacket);
}