
Recherche avancée
Autres articles (112)
-
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
The zip file provided here only contains the sources of MediaSPIP in its standalone version.
To get a working installation, you must manually install all-software dependencies on the server.
If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...) -
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 (...) -
ANNEXE : Les plugins utilisés spécifiquement pour la ferme
5 mars 2010, parLe site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)
Sur d’autres sites (12189)
-
ffmpeg:When receiving a udp network video stream, it is found that the values of the received packets PTS and DTS change abnormally
24 octobre 2022, par watermelon_sevenI am using the ffmpeg source code to receive the udp network video stream, but there is a problem with this video stream. Occasionally, the audio and video packets dts and pts jump at the same time, that is, from a large value to a difference of dozens of times. Very small value, I want to use a solution to solve this problem in the code, but can't think of it. Hope you can help me, thanks !


The following is a process of writing to the buffer to be decoded after receiving the video packet when I receive the network stream. The decoding is done by the video decoding thread, which is only responsible for receiving the stream and writing the buffer to be decoded.


//read video package
 if(pAvPacket->stream_index == pThis->m_iVideoStreamIndex)
 {
 std::cout<<"Video_Packet_DTS: "<dts<<" Video_Packet_PTS: "<pts</Video frame rate assignment
 if(pThis->m_pVideoTimeBase->num > 0 && pAvPacket->duration > 0)
 pThis->m_iVideoFPS = (pThis->m_pVideoTimeBase->den / pThis->m_pVideoTimeBase->num) / pAvPacket->duration;

 if(pThis->m_iDecodeMode == DECODE_MODE_ONLY_CURRENT_COLLECTION)
 pThis->m_videoDecodeThreadState = THREAD_NEED_STOP; //stop the thread
 else
 pThis->m_videoDecodeThreadState = THREAD_NEED_RUN; //make the thread run

 if(pThis->m_iMultiMediaType != MULTI_MEDIA_TYPE_FILE
 && pAvPacket->flags == AV_PKT_FLAG_KEY)
 {
 pThis->m_bIsFindIFrame = YTRUE;
 }

 VideoFramesCount ++;
 pThis->m_iReadVideoPacketCount ++;
 if(pThis->m_iDecodeMode != DECODE_MODE_ONLY_CHECK_NET && pThis->m_iDecodeMode != DECODE_MODE_AUDIO && pThis->m_bIsFindIFrame)
 YGlobCircleBufferWrite<avpacket>(pThis->m_videoPacketBuffer, &pAvPacket, 1);
 else
 av_packet_unref(pAvPacket);
 pAvPacket = YNULL;
 }
</avpacket>


The following is the information printed when the code is run :


Video_Packet_DTS: 8590470992 Video_Packet_PTS: 8590470992
Video_Packet_DTS: 8590474592 Video_Packet_PTS: 8590474592
Video_Packet_DTS: 8590478192 Video_Packet_PTS: 8590478192
Video_Packet_DTS: 8590481792 Video_Packet_PTS: 8590481792
Video_Packet_DTS: 550800 Video_Packet_PTS: 550800
Video_Packet_DTS: 554400 Video_Packet_PTS: 554400
Video_Packet_DTS: 558000 Video_Packet_PTS: 558000
Video_Packet_DTS: 561600 Video_Packet_PTS: 561600
Video_Packet_DTS: 565200 Video_Packet_PTS: 565200



and the error message is printed :


[h264 @ 04fea380] non-existing PPS 0 referenced
[h264 @ 04fea380] decode_slice_header error
[h264 @ 04fea380] no frame!
[swscaler @ 19b04600] Warning: data is not aligned! This can lead to a speed loss
[mp3float @ 04feadc0] overread, skip -6 enddists: -2 -2
[mpegts @ 04fcbf40] DTS 550800 < 8590481792 out of order
[mp3float @ 04feadc0] overread, skip -7 enddists: -6 -6
[mp3float @ 04feadc0] overread, skip -5 enddists: -2 -2



I am so obsessed with their pts because when I synchronize audio and video, I will use their pts for synchronization. If the pts are too different, the video will be stuck when playing the video. I don't know how to avoid


-
libavformat/riffec : Zero-initialize channels in ff_get_wav_header
9 septembre 2022, par Will Cassellalibavformat/riffec : Zero-initialize channels in ff_get_wav_header
Clang's static analyzer complains that leaving the variable
uninitialized could lead to a code path where the uninitialized value is
written to at the end of this function.
This patch simply zero-initializes that variable to avoid that.Signed-off-by : Will Cassella <cassew@google.com>
Signed-off-by : James Almer <jamrial@gmail.com> -
avutil/dict : Error out in case of key == NULL
14 septembre 2022, par Andreas Rheinhardtavutil/dict : Error out in case of key == NULL
Up until now, using NULL as key in av_dict_get() on a non-empty
AVDictionary would crash ; using NULL as key in av_dict_set()
would also crash for a non-empty AVDictionary unless AV_DICT_MULTIKEY
was set ; in case the dictionary was initially empty or AV_DICT_MULTIKEY
was set, it was even possible for av_dict_set() to succeed when
adding a NULL key, namely when one uses a value != NULL and
the AV_DICT_DONT_STRDUP_VAL flag. Using av_dict_get() on such
an AVDictionary will usually lead to crashes, though.Fix this by actually checking for key in both functions ; error out
if they are NULL.While just at it, also stop relying on av_strdup(NULL) to return NULL
in av_dict_set().Signed-off-by : Andreas Rheinhardt <andreas.rheinhardt@outlook.com>