
Recherche avancée
Autres articles (89)
-
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 0.2 est la première version de MediaSPIP stable.
Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
Le profil des utilisateurs
12 avril 2011, parChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...) -
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)
Sur d’autres sites (7912)
-
Error in http dynamic streaming TypeError - Error #1009
25 octobre 2014, par internetdopingI am making mutli-bitrate streaming in FMS and FFMPGE.
InFFMPEG
I create 4 bitrates of source video and publish it on theFMS
throughRTMP
protocol(rtmp://my-server/livepkgr/mystreamName1?adbe-live-event=liveevent).
Now all configurations are working currently but sometimes I get this error :
1- TypeError - Error #1009This is my
FFMPEG
syntaxt to create multi-bitrate :ffmpeg -re -i j:\movie\warz.mkv
-preset ultrafast -threads 1 -vcodec libx264 -b:v 720k -r 24 -g 24 -keyint_min 4 -x264opts "keyint=4:min-keyint=48:no-scenecut" -s 856*360 -acodec libmp3lame -b:a 16k -ac 1 -ar 44100 -f flv rtmp://12.11.1.2/livepkgr/relation720p?adbe-live-event=relation
-preset ultrafast -threads 1 -vcodec libx264 -b:v 600k -r 24 -g 24 -keyint_min 4 -x264opts "keyint=4:min-keyint=48:no-scenecut" -s 856*360 -acodec libmp3lame -b:a 16k -ac 1 -ar 44100 -f flv rtmp://12.11.1.2/livepkgr/relation360p?adbe-live-event=relation
-preset ultrafast -threads 1 -vcodec libx264 -b:v 350k -r 24 -g 24 -keyint_min 4 -x264opts "keyint=4:min-keyint=48:no-scenecut" -s 570*240 -acodec libmp3lame -b:a 16k -ac 1 -ar 44100 -f flv rtmp://12.11.1.2/livepkgr/relation240p?adbe-live-event=relation
-preset ultrafast -threads 1 -vcodec libx264 -b:v 98k -r 24 -g 24 -keyint_min 4 -x264opts "keyint=4:min-keyint=48:no-scenecut" -s 342*144 -acodec libmp3lame -b:a 16k -ac 1 -ar 44100 -f flv rtmp://12.11.1.2/livepkgr/relation144p?adbe-live-event=relation
-preset ultrafast -threads 1 -vcodec libx264 -b:v 98k -r 24 -g 24 -keyint_min 4 -x264opts "keyint=4:min-keyint=48:no-scenecut" -s 342*144 -acodec libmp3lame -b:a 16k -ac 1 -ar 44100 -f flv rtmp://12.11.1.2/livepkgr/relation98p?adbe-live-event=relationand this is my F4M file :
<manifest xmlns="http://ns.adobe.com/f4m/2.0">
<dvrinfo beginoffset="0" endoffset="1800"></dvrinfo>
<baseurl>http://12.11.1.2/hds-live/livepkgr/_definst_/relation</baseurl>
<media href="relation360p.f4m" bitrate="600"></media>
<media href="relation240p.f4m" bitrate="350"></media>
<media href="relation144p.f4m" bitrate="128"></media>
<media href="relation720p.f4m" bitrate="1932"></media>
<media href="relation98p.f4m" bitrate="98"></media>
</manifest>Please advise me to fix this problem.
Any help will be appreciated. -
Dynamic ffmpeg crop, scale & encoding code seems to break when the crop size changes
28 avril 2024, par BlindyThe following code works perfectly as long as I only move the crop rectangle, however as soon as I change its size I no longer get frames out of my filter (
av_buffersink_get_frame
returns-11
). It's crazy, even after the size changes, if it eventually changes to the original size that frame will go through, then it will go back to no longer providing frames.

Would anyone happen to know what I'm doing wrong ?


My filter setup (note the
crop
&scale
combination, it should (I think ?) scale whatever I crop to the output video size) :

// buffer source -> buffer sink setup
auto args = std::format("video_size={}x{}:pix_fmt={}:time_base={}/{}:pixel_aspect={}/{}",
 inputCodecContext->width, inputCodecContext->height, (int)inputCodecContext->pix_fmt,
 inputCodecContext->pkt_timebase.num, inputCodecContext->pkt_timebase.den,
 inputCodecContext->sample_aspect_ratio.num, inputCodecContext->sample_aspect_ratio.den);

AVFilterContext* buffersrc_ctx = nullptr, * buffersink_ctx = nullptr;
check_av_result(avfilter_graph_create_filter(&buffersrc_ctx, bufferSource, "in",
 args.c_str(), nullptr, &*filterGraph));
check_av_result(avfilter_graph_create_filter(&buffersink_ctx, bufferSink, "out",
 nullptr, nullptr, &*filterGraph));
check_av_result(av_opt_set_bin(buffersink_ctx, "pix_fmts",
 (uint8_t*)&outputCodecContext->pix_fmt, sizeof(outputCodecContext->pix_fmt), AV_OPT_SEARCH_CHILDREN));

// filter command setup
auto filterSpec = std::format("crop,scale={}:{},setsar=1:1", outputCodecContext->width, outputCodecContext->height);

check_av_result(avfilter_graph_parse_ptr(&*filterGraph, filterSpec.c_str(), &filterInputs, &filterOutputs, nullptr));
check_av_result(avfilter_graph_config(&*filterGraph, nullptr));



Frame cropping :


check_av_result(avfilter_graph_send_command(&*filterGraph, "crop", "x", std::to_string(cropRectangle.CenterX() - cropRectangle.Width() / 2).c_str(), nullptr, 0, 0));
check_av_result(avfilter_graph_send_command(&*filterGraph, "crop", "y", std::to_string(cropRectangle.CenterY() - cropRectangle.Height() / 2).c_str(), nullptr, 0, 0));
check_av_result(avfilter_graph_send_command(&*filterGraph, "crop", "w", std::to_string(cropRectangle.Width()).c_str(), nullptr, 0, 0));
check_av_result(avfilter_graph_send_command(&*filterGraph, "crop", "h", std::to_string(cropRectangle.Height()).c_str(), nullptr, 0, 0));

// push the decoded frame into the filter graph
check_av_result(av_buffersrc_add_frame_flags(buffersrc_ctx, &*inputFrame, 0));

// pull filtered frames from the filter graph
while (1)
{
 ret = av_buffersink_get_frame(buffersink_ctx, &*filteredFrame);
 if (ret < 0)
 {
 // if no more frames, rewrite the code to 0 to show it as normal completion
 if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF)
 ret = 0;
 break;
 }

 // write the filtered frame to the output file 
 // [...]
}



I also set the output video size before creating the file, and it is obeyed as expected :


outputCodecContext->width = (int)output.PixelSize().Width;
outputCodecContext->height = (int)output.PixelSize().Height;



-
Revision 7cc14e598e : Code cleanup. Lower case variable names, code simplification by using already d
25 mars 2013, par Dmitry KovalevChanged Paths : Modify /vp9/common/vp9_loopfilter.c Modify /vp9/common/vp9_quant_common.c Modify /vp9/common/vp9_quant_common.h Modify /vp9/decoder/vp9_decodframe.c Code cleanup. Lower case variable names, code simplification by using already defined clamp and read_le16 functions. Change-Id : (...)