
Recherche avancée
Autres articles (95)
-
Multilang : améliorer l’interface pour les blocs multilingues
18 février 2011, parMultilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela. -
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 (...)
-
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 (8148)
-
ffmpeg : avcodec_open2 returns invalid argument
26 octobre 2020, par roariI'm reusing the sample code from the developer 64-bit release of FFmpeg in my application to encode a video :


AVCodec* pCodec_{nullptr};
AVCodecContext* pContext_{nullptr};

avcodec_register_all();
pCodec_ = avcodec_find_encoder(AV_CODEC_ID_MPEG2VIDEO);
if (!pCodec_) {}

pContext_ = avcodec_alloc_context3(pCodec_);
if (!pContext_) {}

pContext_->bit_rate = 400000;
pContext_->width = size.width();
pContext_->height = size.height();

pContext_->time_base.den = 1;
pContext_->time_base.num = fps;

pContext_->gop_size = 10;
pContext_->max_b_frames = 1;
pContext_->pix_fmt = AV_PIX_FMT_BGR0;

if (codec_id == AV_CODEC_ID_H264) {
 av_opt_set(pContext_->priv_data, "preset", "slow", 0);
}

int err = avcodec_open2(pContext_, pCodec_, nullptr);
if (err < 0) {}



AVCodec*
andAVCodecContext*
look like they are allocated correctly.avcodec_open2
then returns invalid argument (-22
).

I use : Windows 10 64, VS2013 Compiler, Qt Creator IDE, ffmpeg(2016-05-12) 64bit.


The sample I took the code from is decoding_encoding.c.


Any ideas ?


-
VideoJS seekable().end(0) always returns 0
18 septembre 2022, par Clovis NyuI am trying to jump to a particular timestamp of a video, but using
player.currentTime(someTime)
always sends the video back to the start. Upon doing some research, I found that runningplayer.seekable().end(0)
always returns 0. I realize that this might be a problem with the fact that I'm using MP4, but I've tried using

ffmpeg -i input.mp4 -c copy -movflags +faststart output.mp4



to fix it and it doesn't work. Below is my code




 


 <source src="http://localhost:8000/some_video.mp4" type="video/mp4"></source>
 <p class="vjs-no-js">
 To view this video please enable JavaScript, and consider upgrading to a
 web browser that
 <a href="https://videojs.com/html5-video-support/" target="_blank">supports HTML5 video
 </a></p>


<button>Jump</button>

<code class="echappe-js"><script src="https://vjs.zencdn.net/7.7.5/video.js"></script>

<script>&#xA; var VIDEO_JS = videojs(&#x27;my-video&#x27;);&#xA;&#xA; function jump() {&#xA; VIDEO_JS.currentTime(10);&#xA; }&#xA;</script>




For more context, the videos are taken from youtube, the audio is then split into vocals and accompaniment using spleeter, then ffmpeg is used to merge back the resulting audio files into the original video.


Any help would be appreciated. Thanks !


-
libav/ffmpeg : avcodec_decode_video2() returns -1 when separating demultiplexing and decoding
26 avril 2013, par unbekanntI'm using libav (from a C++ program on Linux and Windows) to decode video streams from a file, which works fine (decoding various formats like H264 and MPEG2) using avformat_open_input(), av_read_frame() and avcodec_decode_video2().
Now I have to separate demultiplexing and decoding. One class will call avformat_open_input() and av_read_frame() and then pass the AVPackets into a queue that is read by another class. There I use avcodec_alloc_context3() to get the AVCodecContext needed for avcodec_decode_video2(). I've tested that with a MPEG2 video stream and it works.
Problems arise if I try to decode a H264 stream : avcodec_decode_video2() always returns -1 and outputs "no frame". I understand that additional data (SPS/PPS) is needed to decode this stream, so I've tried to replicate the original AVCodecContext from the demultiplexer in the decoder, but it won't work :
- Copying the content of the extradata field and setting all other values that differ from the default ones in the decoder : -1 is returned
- Using the same context (i.e. passing along the pointer) results in a crash
I also tried to set CODEC_FLAG2_CHUNKS. avcodec_decode_video2() then always returns packet.size - 3 (??) and frameFinished is never set to 1.
In my opinion I have a general problem here that will arise whenever settings from the original CodecContext are needed to decode the AVPackets. I'd be grateful for any hints on how to solve that problem !
EDIT : Sometimes writing down your problem helps solving it... Using a copy of the context struct (avcodec_copy_context) and opening the codec only after receiving the copy results in decoded frames. Does anyone know if that is safe or the best way to do it ?