WhooHooo, eu entendi o problema! Então esta é a correção. No meu caso, o FFMPEG estava pendurado em um dos fluxos problemáticos e, portanto, não estava adiantando para iniciar as gravações do restante dos fluxos na lista. Basicamente, com o FFMPEG você tem que executar o comando para cada fluxo em um thread separado. Basicamente, configure o método main no seu jar para iniciar threads separados que então começariam a gravar para cada stream separadamente. Dessa forma, se o ffmpeg não puder se conectar a um deles e não responder, ele não interromperá a gravação do restante dos streams.
package igor.recorder.ffmpeg;
import java.io.IOException;
import java.io.InputStream;
public class RecordRazTV extends Thread {
String streamUrl="rtmp://83.229.210.89/RAZTV/BTVraztv1";
String recordingPath="/media/TV_580_3T_9/raztv";
String recordCommand = "";
String streamAliasFileName="";
public void run() {
System.out.println("Igors Log >> Inside the thread!");
streamAliasFileName = recordingPath.substring(recordingPath.lastIndexOf("/") + 1);
recordCommand = "ffmpeg -i " + streamUrl + " -b:v 900k -vcodec libx264 -acodec aac -b:a 256k -strict -2 -t 3600 /media/TV_1T_3T_6/ffmpegtest/raztv.mp4";
Process p;
try {
System.out.println("Igors Log >> Executing Runtime for FFMPEG: " + recordCommand);
p = Runtime.getRuntime().exec(recordCommand);
System.out.println("Igors Log >> Done executing Runtime for FFMPEG");
InputStream in = p.getErrorStream();
int c;
while ((c = in.read()) != -1)
{
System.out.print((char)c);
}
in.close();
interrupt();
} catch (IOException e) {
e.printStackTrace();
}
}
}