1
ffmpeg -i https://NESTCAMURL -vf drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf:text='%{localtime\:%T}':fontcolor=white@0.8:x=7:y=700 -vcodec libx264 -bsf:a aac_adtstoasc /home/owner/Downloads/Move/NEST/Livingroom/StreamLivingroom_$now.mp4"

Похоже, что приведенная выше команда максимально загружает процессор, и в идеале я бы хотел, чтобы она использовала как можно меньше ресурсов при достижении приличного качества видео. Это возможно?

2 ответа2

0

"как можно меньше ресурсов при достижении приличного качества видео" - это все равно, что сказать, использовать как можно меньше топлива, но ехать достаточно далеко. Эффективность не может быть изменена, вам нужно решить, от какого качества вы готовы отказаться. Вы можете сделать компромисс, установив предустановки x264.

РЕДАКТИРОВАТЬ: попробуйте добавить -crf 18 -preset ultrafast Стоимость будет больше размер файла.

0

«Кажется, что приведенная выше команда максимально загружает процессор, и в идеале мне бы хотелось, чтобы она использовала как можно меньше ресурсов при достижении приличного качества видео».

Проблема с вашей логикой состоит в том, что вы предполагаете, что внутренние настройки FFmpeg виноваты, когда они не… Ну, не совсем так, но чтобы быть простым и ясным по этому поводу, я скажу, что практически любое системное программное обеспечение Linux/Unix можно контролировать ограничить использование с помощью инструмента CPUlimit:

cpulimit - это простая программа, которая пытается ограничить использование процессором процессора (выражается в процентах, а не во времени процессора). Это полезно для управления пакетными заданиями, когда вы не хотите, чтобы они ели слишком много процессора. Он не влияет на приятное значение или другие приоритетные задачи планирования, а на реальное использование процессора. Кроме того, он может динамически и быстро адаптироваться к общей загрузке системы.

Таким образом, на самом базовом уровне вы можете запустить свою команду с помощью команды CPUlimit -l например так:

cpulimit -l 50 ffmpeg -i https://NESTCAMURL -vf drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf:text='%{localtime\:%T}':fontcolor=white@0.8:x=7:y=700 -vcodec libx264 -bsf:a aac_adtstoasc /home/owner/Downloads/Move/NEST/Livingroom/StreamLivingroom_$now.mp4"

Этот cpulimit -l 50 указывает системе использовать только 50% мощности ЦП, чтобы ваш процесс занимал в 2 раза больше времени, но также использовал только 50% ресурсов ЦП.

Но имейте в виду, что 4-ядерная система - как MacBook Air, который я использую сейчас - равняется 400% (4 x 100%). Поэтому, если бы я хотел использовать только 50% доступной емкости моей системы, мне нужно было бы запустить флаг -l с 200% -ной емкостью, например: cpulimit -l 200 .

cpulimit -l 200 ffmpeg -i https://NESTCAMURL -vf drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf:text='%{localtime\:%T}':fontcolor=white@0.8:x=7:y=700 -vcodec libx264 -bsf:a aac_adtstoasc /home/owner/Downloads/Move/NEST/Livingroom/StreamLivingroom_$now.mp4"

Для получения дополнительной информации, посмотрите на этот отличный пост в блоге.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .