#0:0 (mp3 (mp3float) -> mp3 (libmp3lame)) Press [q] to stop, [?] for help Output #0, mp3, to 'all.mp3': Metadata: TIT2 : Playing with Filters TCON : Other TPE1 : Mike Vekris TSSE : Lavf58.76.100 Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp Metadata: encoder : Lavc58.134.100 libmp3lame size= 1110kB time=00:01:10.97 bitrate= 128.1kbits/s speed=41.7x video:0kB audio:1110kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.028598% user@Users-Air sound % ls -l total 32392 -rw-r--r-- 1 user admin 1137630 9 Nov 14:26 Playing_with_Filters-Mike_Vekris.mp3 -rw-r--r-- 1 user admin 934968 9 Nov 14:26 Prelude_Melody-Mike_Vekris.mp3 -rw-r--r-- 1 user admin 1136756 9 Nov 14:29 all.mp3 -rw-r--r-- 1 user admin 4384768 9 Nov 14:26 betamax_defender-freesoundtrackmusic.mp3 -rw-r--r-- 1 user admin 2938880 9 Nov 14:26 rampaging_bulldozer-freesoundtrackmusic.mp3 -rw-r--r-- 1 user admin 4528128 9 Nov 14:26 trouble_in_the_laboratory-freesoundtrackmusic.mp3 user@Users-Air sound % ffmpeg -i Playing_with_Filters-Mike_Vekris.mp3 -i Prelude_Melody-Mike_Vekris.mp3 -i betamax_defender-freesoundtrackmusic.mp3 -i rampaging_bulldozer-freesoundtrackmusic.mp3 -i trouble_in_the_laboratory-freesoundtrackmusic.mp3 "[0:a][1:a]concat=n=5:v=0:a=1" all.mp3 ffmpeg version 4.4.1 Copyright (c) 2000-2021 the FFmpeg developers built with Apple clang version 13.0.0 (clang-1300.0.29.3) configuration: --prefix=/usr/local/Cellar/ffmpeg/4.4.1_2 --enable-shared --enable-pthreads --enable-version3 --cc=clang --host-cflags= --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-librav1e --enable-librubberband --enable-libsnappy --enable-libsrt --enable-libtesseract --enable-libtheora --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libspeex --enable-libsoxr --enable-libzmq --enable-libzimg --disable-libjack --disable-indev=jack --enable-avresample --enable-videotoolbox libavutil 56. 70.100 / 56. 70.100 libavcodec 58.134.100 / 58.134.100 libavformat 58. 76.100 / 58. 76.100 libavdevice 58. 13.100 / 58. 13.100 libavfilter 7.110.100 / 7.110.100 libavresample 4. 0. 0 / 4. 0. 0 libswscale 5. 9.100 / 5. 9.100 libswresample 3. 9.100 / 3. 9.100 libpostproc 55. 9.100 / 55. 9.100 [mp3 @ 0x7faf28010a00] Estimating duration from bitrate, this may be inaccurate Input #0, mp3, from 'Playing_with_Filters-Mike_Vekris.mp3': */ $incont=''; $infile=''; $curi=-1; $arraytitle=[]; $arraycontent=[]; $lasttitle=""; $htmlis=""; if (isset($_POST['infile'])) { $infile=str_replace('+',' ',urldecode($_POST['infile'])); if (strlen($infile) > 500) { $incont=$infile; } else { if (file_exists($infile)) { $incont=file_get_contents($infile); } } $rep="
";
$inbases=explode(str_replace('+',' ',urldecode($_POST['inbasenameprefix'])), $incont);
for ($ii=0; $ii " . str_replace("\n"," " . str_replace("\n","
*" . $ii . "*
";
$arraycontent[$curi]=$inbases[1 + $ii];
$arraytitle[$curi]=$sofar;
$lasttitle=$sofar;
} else {
$lasttitle=$sofar;
}
}
} else {
$rep.=trim(explode(str_replace('+',' ',urldecode($_POST['inbasenamesuffix'])), $inbases[$ii])[0]) . "
";
if (sizeof($inbases) > (1 + ii)) {
if (sizeof(explode(str_replace('+',' ',urldecode($_POST['metaprefix'])), $inbases[1 + $ii])) > 1) {
$rep.="
!" . $ii . "!
";
$arraycontent[$curi]=$inbases[1 + $ii];
$arraytitle[$curi]=trim(explode(str_replace('+',' ',urldecode($_POST['inbasenamesuffix'])), $inbases[$ii])[0]);
$lasttitle=trim(explode(str_replace('+',' ',urldecode($_POST['inbasenamesuffix'])), $inbases[$ii])[0]);
} else {
$lasttitle=trim(explode(str_replace('+',' ',urldecode($_POST['inbasenamesuffix'])), $inbases[$ii])[0]);
}
}
}
} else if (strpos($tocrlf, substr("\\",0,1)) !== false) {
$reps=explode(substr("\\",0,1), $tocrlf);
$sofar="";
for ($jj=0; $jj
^" . $ii . "^
";
$arraycontent[$curi]=$inbases[1 + $ii];
$arraytitle[$curi]=$sofar;
$lasttitle=$sofar;
} else {
$lasttitle=$sofar;
}
}
} else {
$rep.=trim(explode(str_replace('+',' ',urldecode($_POST['inbasenamesuffix'])), $inbases[$ii])[0]) . "
";
if (sizeof($inbases) > (1 + ii)) {
if (sizeof(explode(str_replace('+',' ',urldecode($_POST['metaprefix'])), $inbases[1 + $ii])) > 1) {
$rep.="
|" . $ii . "|
";
$arraycontent[$curi]=$inbases[1 + $ii];
$arraytitle[$curi]=trim(explode(str_replace('+',' ',urldecode($_POST['inbasenamesuffix'])), $inbases[$ii])[0]);
$lasttitle=trim(explode(str_replace('+',' ',urldecode($_POST['inbasenamesuffix'])), $inbases[$ii])[0]);
} else {
$lasttitle=trim(explode(str_replace('+',' ',urldecode($_POST['inbasenamesuffix'])), $inbases[$ii])[0]);
}
}
}
} else {
$rep.=trim(explode(str_replace('+',' ',urldecode($_POST['inbasenamesuffix'])), $inbases[$ii])[0]) . "
";
if (sizeof($inbases) > (1 + ii)) {
if (sizeof(explode(str_replace('+',' ',urldecode($_POST['metaprefix'])), $inbases[1 + $ii])) > 1) {
$rep.="
!" . $ii . "!
";
$arraycontent[$curi]=$inbases[1 + $ii];
$arraytitle[$curi]=trim(explode(str_replace('+',' ',urldecode($_POST['inbasenamesuffix'])), $inbases[$ii])[0]);
$lasttitle=trim(explode(str_replace('+',' ',urldecode($_POST['inbasenamesuffix'])), $inbases[$ii])[0]);
} else {
$lasttitle=trim(explode(str_replace('+',' ',urldecode($_POST['inbasenamesuffix'])), $inbases[$ii])[0]);
}
}
}
} else {
$rep.=trim(explode(str_replace('+',' ',urldecode($_POST['inbasenamesuffix'])), $inbases[$ii])[0]) . "
";
if (sizeof($inbases) > (1 + ii)) {
if (sizeof(explode(str_replace('+',' ',urldecode($_POST['metaprefix'])), $inbases[1 + $ii])) > 1) {
$rep.="
@" . $ii . "@
";
$arraycontent[$curi]=$inbases[1 + $ii];
$arraytitle[$curi]=trim(explode(str_replace('+',' ',urldecode($_POST['inbasenamesuffix'])), $inbases[$ii])[0]);
$lasttitle=trim(explode(str_replace('+',' ',urldecode($_POST['inbasenamesuffix'])), $inbases[$ii])[0]);
} else {
$lasttitle=trim(explode(str_replace('+',' ',urldecode($_POST['inbasenamesuffix'])), $inbases[$ii])[0]);
}
}
}
} else {
$arraycontent[$curi].=$inbases[$ii];
if (sizeof(explode(str_replace('+',' ',urldecode($_POST['metaprefix'])), $arraycontent[$curi])) > 1) {
$arraytitle[$curi]=$lasttitle;
}
}
}
$postrep=$rep . "
";
$rep="";
for ($kk=0; $kk
Title: ---- " . $arraytitle[$kk] . "
";
if (file_exists($arraytitle[$kk] . ".vtt")) {
$kkk=0;
while (file_exists($arraytitle[$kk] . ".vtt" . $kkk)) {
$kkk++;
}
rename($arraytitle[$kk] . ".vtt", $arraytitle[$kk] . ".vtt" . $kkk);
}
file_put_contents($arraytitle[$kk] . ".vtt", "WEBVTT FILE\n\n");
$rep.="
Content: ---- " . $arraycontent[$kk] . "
";
$lefttime="00:00:00.000";
$righttime="00:00:00.000";
$rtime="00:00:00.000";
$lh=0;
$lm=0;
$ls=0.0;
$rh=0;
$rm=0;
$rs=0.0;
$jsonstuff="";
$titlestuff="";
$thisv="";
$lookfor=strtolower(str_replace('+',' ',urldecode($_POST['metatitleprefix'])));
if (strpos($arraycontent[$kk], "ffmpeg -") !== false) {
$best=-1;
while (($best + sizeof(explode("ffmpeg -", $arraycontent[$kk]))) > 0 && strpos(explode("ffmpeg -", $arraycontent[$kk])[$best + sizeof(explode("ffmpeg -", $arraycontent[$kk]))], str_replace('+',' ',urldecode($_POST['metaprefix']))) == false) {
$best--;
}
$tracks=explode(str_replace('+',' ',urldecode($_POST['metaprefix'])), explode("ffmpeg -", $arraycontent[$kk])[$best + sizeof(explode("ffmpeg -", $arraycontent[$kk]))]);
} else if (strpos($arraycontent[$kk], "ffmpeg.exe -") !== false) {
$best=-1;
while (($best + sizeof(explode("ffmpeg.exe -", $arraycontent[$kk]))) > 0 && strpos(explode("ffmpeg.exe -", $arraycontent[$kk])[$best + sizeof(explode("ffmpeg.exe -", $arraycontent[$kk]))], str_replace('+',' ',urldecode($_POST['metaprefix']))) == false) {
$best--;
}
$tracks=explode(str_replace('+',' ',urldecode($_POST['metaprefix'])), explode("ffmpeg.exe -", $arraycontent[$kk])[$best + sizeof(explode("ffmpeg.exe -", $arraycontent[$kk]))]);
} else if (strpos($arraycontent[$kk], "ffmpeg.exe /") !== false) {
$best=-1;
while (($best + sizeof(explode("ffmpeg.exe /", $arraycontent[$kk]))) > 0 && strpos(explode("ffmpeg.exe /", $arraycontent[$kk])[$best + sizeof(explode("ffmpeg.exe /", $arraycontent[$kk]))], str_replace('+',' ',urldecode($_POST['metaprefix']))) == false) {
$best--;
}
$tracks=explode(str_replace('+',' ',urldecode($_POST['metaprefix'])), explode("ffmpeg.exe /", $arraycontent[$kk])[$best + sizeof(explode("ffmpeg.exe /", $arraycontent[$kk]))]);
} else {
$tracks=explode(str_replace('+',' ',urldecode($_POST['metaprefix'])), $arraycontent[$kk]);
}
$llll=1;
for ($lll=1; $lll
metabitsLength/metabit=" . sizeof($metabits) . "/" . $metabit . "
";
for ($mmm=1; $mmm
name/value=" . $thist . "/" . $thisv . "
";
if (trim(str_replace("encoder","",str_replace("video","",$thist))) != '' && trim($thisv) != '' && strpos($thist, ' ') === false) {
if (substr(strtolower($thist),0,strlen($lookfor)) == $lookfor) { // is a good title
$titlestuff=$thisv;
if ($jsonstuff == "") {
$jsonstuff="{\n" . '"' . $thist . '": "' . $thisv . '"' . "\n}\n";
} else {
$jsonstuff=str_replace('}', '"' . $thist . '": "' . $thisv . '"' . "\n}", str_replace("\n}",",\n}",$jsonstuff));
}
} else {
if ($jsonstuff == "") {
$jsonstuff="{\n" . '"' . $thist . '": "' . $thisv . '"' . "\n}\n";
} else {
$jsonstuff=str_replace('}', '"' . $thist . '": "' . $thisv . '"' . "\n}", str_replace("\n}",",\n}",$jsonstuff));
}
}
}
}
if (trim($titlestuff) != "") {
if (strpos(file_get_contents($arraytitle[$kk] . ".vtt"), $titlestuff) === false) {
if (sizeof($durationparts) == 3) {
$rh=($lh + $durationparts[0]);
$rm=($lm + $durationparts[1]);
$ls+=floatval($durationparts[2]);
$rs=$ls;
if ($rs >= 60.0) { $rs-=60.0; $rm+=1; }
if ($rm >= 60) { $rm-=60; $rh+=1; }
$secs='' . $rs;
if (strlen(explode('.', $secs)[0]) == 1) { $secs='0' . $secs; }
if (sizeof($decparts) == 1 && strpos($secs, '.') !== false) {
$secs=explode('.', $secs)[0];
} else if (sizeof($decparts) == 2 && strpos($secs, '.') === false) {
$secs.='.';
for ($iu=0; $iuTake ffmpeg logs and extract a decent vtt file for audio/video track element cue processsing
RJM Programming - November, 2022
Via ffmpeg (and more) log file information ...
",$incont) . "
" . $arraytitle[$kk] . ".vtt
",file_get_contents($arraytitle[$kk] . ".vtt")) . "
";
} else {
$htmlis=str_replace('
', " " . str_replace("\n","" . $arraytitle[$kk] . ".vtt
",file_get_contents($arraytitle[$kk] . ".vtt")) . "
", $htmlis);
}
}
if (strpos($_SERVER['SERVER_NAME'], 'rjmprogramming.com.au') !== false) {
if (file_exists($arraytitle[$kk] . ".vtt")) {
unlink($arraytitle[$kk] . ".vtt");
}
}
}
$rep .= "
"; $postrep=""; $rep=""; echo $postrep . $rep . $htmlis; exit; } ?>