
Recherche avancée
Médias (3)
-
Elephants Dream - Cover of the soundtrack
17 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Image
-
Valkaama DVD Label
4 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Image
-
Publier une image simplement
13 avril 2011, par ,
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (42)
-
Submit bugs and patches
13 avril 2011Unfortunately a software is never perfect.
If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
You may also (...) -
Contribute to translation
13 avril 2011You can help us to improve the language used in the software interface to make MediaSPIP more accessible and user-friendly. You can also translate the interface into any language that allows it to spread to new linguistic communities.
To do this, we use the translation interface of SPIP where the all the language modules of MediaSPIP are available. Just subscribe to the mailing list and request further informantion on translation.
MediaSPIP is currently available in French and English (...) -
Diogene : création de masques spécifiques de formulaires d’édition de contenus
26 octobre 2010, parDiogene est un des plugins ? SPIP activé par défaut (extension) lors de l’initialisation de MediaSPIP.
A quoi sert ce plugin
Création de masques de formulaires
Le plugin Diogène permet de créer des masques de formulaires spécifiques par secteur sur les trois objets spécifiques SPIP que sont : les articles ; les rubriques ; les sites
Il permet ainsi de définir en fonction d’un secteur particulier, un masque de formulaire par objet, ajoutant ou enlevant ainsi des champs afin de rendre le formulaire (...)
Sur d’autres sites (4332)
-
Piping ffmpeg output into ffplay stdin with boost
21 décembre 2020, par botiapaI'm trying to pipe the output of an ffmpeg process into an ffplay process (Sort of like a playback). My problem is the following : If I copy the output character by character (by character I mean
char
) it works correctly, other than it consuming a whole lot of cpu power. However when I try to pipe chunks into it (by using a buffer), ffplay for some reason doesn't even recognize the input.

bp::ipstream iso;
bp::ipstream ise;
bp::opstream in;
 
bp::child ffmpeg(bp::search_path("ffmpeg"), bp::args({"-loglevel", "quiet", "-f", "pulse", "-i", "default", "-f", "wav", "-bitexact", "-nostdin", "-"}), bp::std_out > iso, bp::std_err > ise);
bp::child ffplay(bp::search_path("ffplay"), bp::args({"-loglevel", "verbose", "-nodisp", "-f", "wav", "-i", "-"}), bp::std_in < in, bp::std_out > bp::null);



Here are the 2 code snippets for comparison :


Here it is copying
char
bychar


while(ffmpeg.running()) {
 char c;
 c = iso.get();
 in << c;
}



And here it is copying with the help of a buffer


char buffer[1024];
while(ffmpeg.running()) {
 iso.get(buffer, 1024);
 in << buffer;
}



I can provide ffplay output if necessary, however I didn't see any errors or things like that.


-
avfilter/af_asubboost : add boost option
13 mai 2022, par Paul B Mahol -
C++ Boost launching FFMPEG doesnt work, working ok via terminal
21 juin 2023, par Pit DiggerI am launching an FFMPEG process from C++ , the command is workign fine from terminal command line, but gives error when laucnhed from code. What could cause this ?


Error


[AVFilterGraph @ 0x3cfadc0] Error parsing filterchain "[0:v]split=3[v1][v2][v3];[v1]copy[v1out];[v2]scale=w=1280:h=720[v2out];[v3]scale=w=640:h=360[v3out]"
 
[AVFilterGraph @ 0x2f9fb00] Error parsing filterchain 
 
[AVFilterGraph @ 0x3cfadc0] Trailing garbage after a filter: split=3[v1][v2][v3];[v1]copy[v1out];[v2]scale=w=1280:h=720[v2out];[v3]scale=w=640:h=360[v3out]



Code


std::vector args;
args.push_back("-i"); args.push_back("input.mp4");
args.push_back("-filter_complex");
args.push_back("\"[0:v]split=3[v1][v2][v3];[v1]copy[v1out];[v2]scale=w=1280:h=720[v2out];[v3]scale=w=640:h=360[v3out]\"");

args.push_back("-map"); args.push_back("[v1out]");
args.push_back("-c:v:0"); args.push_back("libx264");
args.push_back("-x264-params"); args.push_back("\"nal-hrd=cbr:force-cfr=1\"");
args.push_back("-b:v:0"); args.push_back("1M");
args.push_back("-maxrate:v:0"); args.push_back("2M");
args.push_back("-minrate:v:0"); args.push_back("2M");
args.push_back("-bufsize:v:0"); args.push_back("2M");
args.push_back("-preset"); args.push_back("fast");
args.push_back("-g"); args.push_back("48");
args.push_back("-sc_threshold"); args.push_back("0");
args.push_back("-keyint_min"); args.push_back("48");

args.push_back("-map"); args.push_back("[v2out]");
args.push_back("-c:v:1"); args.push_back("libx264");
args.push_back("-x264-params"); args.push_back("\"nal-hrd=cbr:force-cfr=1\"");
args.push_back("-b:v:1"); args.push_back("1M");
args.push_back("-maxrate:v:1"); args.push_back("1M");
args.push_back("-minrate:v:1"); args.push_back("1M");
args.push_back("-bufsize:v:1"); args.push_back("1M");
args.push_back("-preset"); args.push_back("fast");
args.push_back("-g"); args.push_back("48");
args.push_back("-sc_threshold"); args.push_back("0");
args.push_back("-keyint_min"); args.push_back("48");

args.push_back("-map"); args.push_back("[v3out]");
args.push_back("-c:v:2"); args.push_back("libx264");
args.push_back("-x264-params"); args.push_back("\"nal-hrd=cbr:force-cfr=1\"");
args.push_back("-b:v:2"); args.push_back("500K");
args.push_back("-maxrate:v:2"); args.push_back("500K");
args.push_back("-minrate:v:2"); args.push_back("500K");
args.push_back("-bufsize:v:2"); args.push_back("500K");
args.push_back("-preset"); args.push_back("fast");
args.push_back("-g"); args.push_back("48");
args.push_back("-sc_threshold"); args.push_back("0");
args.push_back("-keyint_min"); args.push_back("48");

args.push_back("-map"); args.push_back("a:0");
args.push_back("-c:a:0"); args.push_back("aac");
args.push_back("-b:a:0"); args.push_back("96k");
args.push_back("-ac"); args.push_back("2");
args.push_back("-map"); args.push_back("a:0");
args.push_back("-c:a:1"); args.push_back("aac");
args.push_back("-b:a:1"); args.push_back("96k");
args.push_back("-ac"); args.push_back("2");
args.push_back("-map"); args.push_back("a:0");
args.push_back("-c:a:2"); args.push_back("aac");
args.push_back("-b:a:2"); args.push_back("48k");
args.push_back("-ac"); args.push_back("2");

args.push_back("-avoid_negative_ts"); args.push_back("1");
args.push_back("-f"); args.push_back("hls");
args.push_back("-hls_time"); args.push_back("6");
args.push_back("-hls_list_size"); args.push_back("15");
args.push_back("-hls_flags"); args.push_back("independent_segments");
args.push_back("-hls_segment_type"); args.push_back("mpegts");
args.push_back("-hls_segment_filename"); args.push_back("/output/stream_%v_data%02d.ts");
args.push_back("-master_pl_name"); args.push_back("index.m3u8");
args.push_back("-var_stream_map"); args.push_back("\"v:0,a:0 v:1,a:1 v:2,a:2\"");
args.push_back("/output/stream_%v.m3u8");


m_childProcess = std::make_unique(
 bp::exe = ffmpegPath,
 bp::args = args);



Command that above code builds (indented for visibility) :


ffmpeg -i input.mp4 -c copy -filter_complex "[0:v]split=3[v1][v2][v3];[v1]copy[v1out];[v2]scale=w=1280:h=720[v2out];[v3]scale=w=640:h=360[v3out]" 
-map [v1out] -c:v:0 libx264 -x264-params "nal-hrd=cbr:force-cfr=1" -b:v:0 1M -maxrate:v:0 2M -minrate:v:0 2M -bufsize:v:0 2M -preset fast -g 48 -sc_threshold 0 -keyint_min 48 
-map [v2out] -c:v:1 libx264 -x264-params "nal-hrd=cbr:force-cfr=1" -b:v:1 1M -maxrate:v:1 1M -minrate:v:1 1M -bufsize:v:1 1M -preset fast -g 48 -sc_threshold 0 -keyint_min 48 
-map [v3out] -c:v:2 libx264 -x264-params "nal-hrd=cbr:force-cfr=1" -b:v:2 500K -maxrate:v:2 500K -minrate:v:2 500K -bufsize:v:2 500K -preset fast -g 48 -sc_threshold 0 -keyint_min 48 -map a:0 -c:a:0 aac -b:a:0 96k -ac 2 
-map a:0 -c:a:1 aac -b:a:1 96k -ac 2 -map a:0 -c:a:2 aac -b:a:2 48k -ac 2 
-avoid_negative_ts 1 -f hls -hls_time 6 -hls_list_size 15 -hls_flags independent_segments -hls_segment_type mpegts -hls_segment_filename /output/stream_%v_data%02d.ts -master_pl_name index.m3u8 -var_stream_map "v:0,a:0 v:1,a:1 v:2,a:2" /output/stream_%v.m3u8