[music] support subtitles

This commit is contained in:
aliveoutside
2022-09-20 19:03:06 +03:00
parent d02d6ceac1
commit d2de67bcc3
2 changed files with 25 additions and 5 deletions
@@ -62,10 +62,20 @@ public class M3UDownloader implements ITrackDownloader {
AtomicInteger progress = new AtomicInteger(0);
List<CompletableFuture<Void>> futures = new ArrayList<>();
var tsesDir = new File(outDir, String.valueOf(payload.hashCode()));
var tsesDir = new File(outDir, String.valueOf(track.d));
tsesDir.mkdirs();
var resultTs = new File(tsesDir, "result.ts");
var fileName = IOUtils.getValidFileName((cache ? "track" : track.toString()) + ".mp3");
String title = null;
if (track.f != null) {
title = track.f;
if (!track.g.isEmpty()) {
title += " (" + track.g + ")";
}
}
var fileName = IOUtils.getValidFileName((cache ? "track" : track.C + " - " + title) + ".mp3");
var resultMp3 = new File(outDir, fileName);
callback.onProgress(5);
@@ -84,6 +94,7 @@ public class M3UDownloader implements ITrackDownloader {
}
File tsDump = new File(tsesDir, ts.getName());
IOUtils.writeToFile(tsDump, content);
callback.onProgress(10 + Math.round(80.0f * progress.addAndGet(1) / tses.size()));
callback.onSizeReceived((long) content.length * tses.size(), parser.getHeapSize());
} catch (IOException | NoSuchPaddingException | NoSuchAlgorithmException | InvalidAlgorithmParameterException | InvalidKeyException e) {
callback.onFailure();
@@ -91,7 +102,6 @@ public class M3UDownloader implements ITrackDownloader {
}
}));
}
var future = CompletableFuture.allOf(futures.toArray(new CompletableFuture[0]));
future.exceptionally(throwable -> {
callback.onFailure();
@@ -33,11 +33,21 @@ public class FFMpeg {
var sb = new StringBuilder();
sb.append("-y -i \"").append(in.getAbsolutePath()).append("\"");
sb.append(" -map 0 -dn ");
sb.append(" -loglevel error");
//sb.append(" -loglevel error");
sb.append(" -hide_banner");
sb.append(" -write_id3v2 1");
String title = null;
if (track.f != null) {
sb.append(" -metadata title=\"").append(IOUtils.getValidFileName(track.f)).append("\"");
title = track.f;
if (!track.g.isEmpty()) {
title += " (" + track.g + ")";
}
}
if (title != null) {
sb.append(" -metadata title=\"").append(IOUtils.getValidFileName(title)).append("\"");
}
if (track.L != null) {