5916
Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш канал: @proJVM Вакансии: @jvmjobs @jvmjobschat ⚠️ Оффтоп -> @flood ❌Переход на личности ❌Троллинг ❌Реклама ❌HH (вакансии) ❌Варез
да, если активно offheap используется, и сейчас очень многое в java прожорливое на offheap
Читать полностью…
у microsoft есть статейка где они так же советуют serialgc на небольших объмах CPU/RAM
Читать полностью…
самое интересное))
sbForCommandsЧитать полностью…
.append("ffmpeg -y -vsync 0 -hwaccel cuvid -r 60 -c:v mjpeg_cuvid -f concat -safe 0 -i \"")
.append(ffmpegFilesPath)
.append("\" -vf \"scale_npp=-1:1080\" -c:v h264_nvenc -b:v 10M -maxrate 10M -bufsize 5M ")
.append(videoPath.resolve(VIDEO_PREFIX + srcSubDirName + VIDEO_SUFFIX + ".mp4"))
.append("\n");
....
Files.write(srcPath.resolve("ffmpeg_commands.txt"), sbForCommands.toString().getBytes(StandardCharsets.UTF_8));
.....
Path commandsFile = Paths.get(Runner.MAIN_DIR, Runner.SOURCE_SUB_DIR, "ffmpeg_commands.txt");
for (String command : Files.readAllLines(commandsFile)) {
System.out.println("Launching command: " + command);
ProcessBuilder pb = new ProcessBuilder(command.split("\\s+"));
Process proc = pb.start();
PipeStream out = new PipeStream(proc.getInputStream(), System.out);
PipeStream err = new PipeStream(proc.getErrorStream(), System.err);
out.start();
err.start();
proc.waitFor();
System.out.println("Exit value is: " + proc.exitValue());
}
да он сам норм параллелится в рамках файла, для обработки одного файла этот параметр трогать не помогает. эффективнее несколько процессов запускать с разными файлами
Читать полностью…
ffmpeg-cli-wrapper пригодится разве что для провайдинга бинарей
Читать полностью…
> даёшь программе задачу
> программа честно загружает цпу, чтобы задача выполнилась быстрее
Ну хз
Ужасно, он нагружает процессор на максимум, создаётся несколько воркеров которые из очереди берут задачи. Только такой вариант я придумал. По-другому не знаю
Читать полностью…
Первая реализация через что? Ну жни тип ясное дело. Можно еще панаму скорее всего
Читать полностью…
На джавке накодить вызов ффмпег, сам подобное делал. И как раз удобно контролить сколько запущено
Читать полностью…
а насколько ffmpeg хорошо масштабируется поточно или в несколько процессов ?
Читать полностью…
gc, jit, metaspace, threads + сторонние либы типо rocksdb которые могут использоваться
Читать полностью…
Бывает что какая-нибудь метадата сжирает больше 25% оперативки?
Читать полностью…
Всем привет! Есть какие-нибудь бест практисес по запуску жаба приложений в кубернетес? Понятно, что надо прописывать -XX:Min/MaxRAMPercentage=~75, чтобы хип не был 25% от памяти контейнера, но смущает, что джава выбирает сериал гарбадж коллектор, например, при cpu=1200m, memory=500Mi. Как будто бы не очень правильный выбор по дефолту, учитывая что limits.cpu- это не выделение условных ядер на контейнер, а количество мощности процессора в единицу времени, выданного на контейнер
Читать полностью…
кстати если вы хотите нарезать под hls - удобнее с https://github.com/shaka-project/shaka-packager
а в ffmpeg оставить перекодировку и экстракт стримов
Ему же можно просто арг скормить, во сколько потоков он запуститься, казалось бы
-threads 4
Кто пользуется, никто не жалуется
https://www.cincopa.com/learn/optimizing-ffmpeg-performance-threads-presets-and-tuning
не уверен вроде бы в джаву привезли новые нативные вызовы https://www.reddit.com/r/java/comments/1n25oyb/intro_to_java_ffm_foreign_function_memory_access/
Читать полностью…
https://github.com/bramp/ffmpeg-cli-wrapper
или
JNI
https://github.com/Manevolent/ffmpeg4j
или
FFM
https://github.com/zmwangx/rust-ffmpeg
так а что там смотреть? любой современный LLM покажет быстрее, чем тут просить
Читать полностью…
Показать как в стрингбтлдере флрмируется команда запуска ффмпег и дергается запуск?)
Читать полностью…
Не знаю, но несколько процессов запустить не проблема
Он будет быстрее всех остальных решений, даже если баш медленнее чего-нибудь там, никто (или почти никто) не умеет жевать медиа лучше ффмпега
#!/bin/bashЧитать полностью…
for video in *.mp4; do
mkdir -p "${video%.*}_frames"
ffmpeg -i "$video" -vf fps=1/10 "${video%.*}_frames/frame_%04d.jpg"
done