Sieht aus, als hänge es an einem zweiten Strom und keiner Bewegung. SOS Bitte helfen. Ich habe 4 Stream-URLs. Ich möchte, dass sie gleichzeitig zusammen aufnehmen.
With one ffmpeg command: I want: rtmp://83.229.210.89/RAZTV/BTVraztv1 to record into file: /media/TV_1T_3T_6/ffmpegtest/ort.mp4 I want: rtmp://mirtv.cdnvideo.ru/mirtv-live/mirtv600.sdp to record into file: /media/TV_1T_3T_6/ffmpegtest/mir.mp4 I want: rtmp://chanson.cdnvideo.ru/chanson-live/shansontv.sdp to record into file: /media/TV_1T_3T_6/ffmpegtest/shansontv.mp4 I want: rtmp://83.229.210.89:1935/TROTV/BTVtro0 to record into file: /media/TV_1T_3T_6/ffmpegtest/tro.mp4
Haben Sie gerade 4 verschiedene Male ffmpeg ausgeführt?
Lawrence vor 10 Jahren
0
Ich tat es, aus irgendeinem Grund würden nur zwei mit der Aufnahme beginnen. Aber separat arbeiten alle Streams und Aufnahmen sind in Ordnung. Aber ich starte Aufnahmen aus Java heraus mit: p = Runtime.getRuntime (). Exec (recordCommand);
user3146313 vor 10 Jahren
0
1 Antwort auf die Frage
0
user3146313
Aber ich verstehe das Problem! Das ist also das Update. In meinem Fall hing FFMPEG an einem der problematischen Streams und begann daher nicht mit der Aufnahme der restlichen Streams in der Liste. Grundsätzlich müssen Sie bei FFMPEG den Befehl für jeden Stream in einem separaten Thread ausführen. Grundsätzlich richten Sie die Hauptmethode in Ihrem Jar ein, um separate Threads zu starten, die dann die Aufzeichnung für jeden Stream separat starten. Auf diese Weise kann ffmpeg die Verbindung der übrigen Streams nicht unterbrechen, wenn keine Verbindung zu ihnen hergestellt werden kann.
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(); } } }