LINUX.ORG.RU

Сообщения accountnujen

 

Почему может остановиться ping на разных серверах?

Форум — General

Дано:

  1. Иностранный сервер X у провайдера А
  2. Иностранный сервер Y у провайдера А, но в другом регионе
  3. Сервер в РФ - W
  4. Домашний сервер - Q

W и Q взаимодействуют друг с другом (вечное соединение heartbeat). Пару дней назад начал ловить аномалии в виде обрезки данных. В одном запросе приходит Hea, во втором rtbeat. До этого в течении месяца таких проблем не было.

Пытаясь выяснить причину, решил запустить ping на 15 часов с X и Y одновременно по W и Q. Команда выглядела вот так:

ping -i 2 -D -O -c $((15*3600/2)) *ip* > ping.log 2>&1 &

Сегодня проверяю логи и вижу на одном сервере на последней строке вот такую картину:

[1714186651.328270] 64 bytes from *ip*: icmp_seq=2227 ttl=56 time=76.8 ms

а на втором вот это:

[1714186651.726404] 64 bytes from *ip*: icmp_seq=2174 ttl=57 time=47.9 ms

все 4 запущенных ping’а остановились примерно в одно и тоже время 1714186651 (Sat Apr 27 2024 05:57:30 GMT+3)

Как такое может быть? И что нужно сделать, чтобы такого не происходило?

 

accountnujen
()

Как сделать, чтобы пользователь www-data имел доступ ко всему, что создаёт пользователь git?

Форум — Admin

У меня установлен git. Я с компьютера редактирую файлы, а затем делаю

git add .
git commit -m "fromlocal"
git push origin master:master
pause

чтобы файлы оказались на сервере.

Всё хорошо до момента, папка я не создам папку и отправлю её на сервер. В данном случае есть папка video2, созданная на моём компьютере и отправленная через git. Если я захочу выполнить PHP скрипт, который записывает что-то в эту папку, то получу ошибку: Warning: file_put_contents(video2/2.dav): Failed to open stream: Permission denied

Если я сделаю chown -R www-data /var/www, то ошибка уйдёт до того момента, пока я снова не грузану на сервер новую папку.

ChatGPT предложил добавить пользователя www-data в группу git. После этого я потерял доступ к ssh у пользователя git. Когда удалил его из группы - всё вернулось.

$ groups git
git : git www-data
$ groups www-data
www-data : www-data
$ ls -l /var/www/web/cam
total 44
-rw-rw-r-- 1 www-data git 20340 Mar 21 16:07 engine.php
-rw-rw-r-- 1 www-data git    47 Mar 21 02:04 index.php
-rw-rw-r-- 1 www-data git   821 Mar 21 04:57 mjpg.php
-rw-rw-r-- 1 www-data git   276 Mar 21 15:37 test.php
drwxrwxr-x 2 www-data git  4096 Mar 21 15:49 video
drwxrwxr-x 2 git      git  4096 Mar 21 16:43 video2
-rw-rw-r-- 1 www-data git   385 Mar 21 02:10 webapp.php

Перемещено hobbit из general

 , ,

accountnujen
()

Чем можно зафиксировать низкую скорость?

Форум — General

Есть ip камера с белым адресом и есть сервер в европе.

Сервер каждые 10 минут 24/7 обращается к камере на получение новых видео.

Сейчас по какой-то причине скорость соединения сервера с камерой упала на столько, что я ничего кроме error connection timeout не вижу.

( читать дальше... )

Если выполнить curl запрос с сервера, то он с вероятностью 90% запрос завершится с результатом «error. connection timeout». Тоже самое будет, если я подключусь к VPN сервера и попытаюсь из браузера открыть морду камеры, она тоже не откроется. 90% - потому что какие-то запросы всё равно выстреливают и проходят на нормальной скорости.

Проблема наблюдается только со скоростью. Пинг нормальный, 38ms, без потерь. Ростелеком предложил копать в сторону mtr. Вот, к примеру, запрос с сервера на камеру и на этот сайт.

( читать дальше... )

Ничего сверхъестественного невидно. Скажите, есть ли что-нибудь по аналогии mtr, но чтобы проверяло скорость соединения, чтобы я мог с этим уже обращаться в ростелеком?

 , ,

accountnujen
()

Как узнать, почему падает php скрипт?

Форум — General

Мне нужно, чтобы машина выполняла php скрипт в фоновом режиме с ограничением по CPU. Запускаю в таком виде: nohup php -f /var/www/website/script.php based10 10000000000 > based10.log 2>&1 & cpulimit -p 1491 -l 60 -b

В какой-то момент (10, 20, 30 минут) скрипт перестаёт работать. До этого скрипт проработал 58 дней без ошибок, затем была перезагрузка системы. После перезагрузки скрипт был запущен снова, но через 20 дней упал с ошибкой:

nohup: ignoring input
123PHP Fatal error:  Uncaught PDOException: SQLSTATE[08S01]: Communication link failure: 1053 Server shutdown in progress in /var/www/website/script.php:62
Stack trace:
#0 /var/www/website/script.php(62): PDOStatement->execute()
#1 {main}
  thrown in /var/www/website/script.php on line 62
<br />
<b>Fatal error</b>:  Uncaught PDOException: SQLSTATE[08S01]: Communication link failure: 1053 Server shutdown in progress in /var/www/website/script.php:62
Stack trace:
#0 /var/www/website/script.php(62): PDOStatement-&gt;execute()
#1 {main}
  thrown in <b>/var/www/website/script.php</b> on line <b>62</b><br />

на 62 строке находится обращение к БД: $stmt->execute([$data]);

Сейчас скрипт падает без ошибки. Просто перестаёт работать и всё.

В based10.log пусто. В mysql/error.log пусто.

Где мне ловить ошибку и понять, в чём причина падения скрипта?

 ,

accountnujen
()

Какие и как нужно выдать права (и кому), чтобы systemd запускал bash скрипт, который дёргает php?

Форум — General

схема: systemd сервис каждые 10 минут обращается к bash скрипту, который в свою очередь обращается к php. Задача PHP скрипта скачать видео, обработать его и отправить.

cronbot.service

[Unit]
Description=cronbot online service
[Service]
Type=simple
ExecStart=/var/www/domain.com/bashtophp.sh

cronbot.timer

Description=CronBOT Run every 10 minutes
[Timer]
OnBootSec=1min
OnUnitActiveSec=10min
Unit=cronbot.service
[Install]
WantedBy=multi-user.target

BASH

#!/bin/bash
php -f /var/www/domain.com/camengine.php true

Если открыть скрипт (сайт) через браузер, то всё отработает нормально, но если запустить сервис cronbot.service (или просто запустить из консоли php -f /var/www/domain.com/camengine.php true</code>), то будет вот такая ошибка:

PHP Warning:  file_put_contents(video/20.16.44-20.17.18[M][0@0][0].dav): Failed to open stream: No such file or directory in /var/www/domain.com/camengine.php on line 397
<br />
<b>Warning</b>:  file_put_contents(video/20.16.44-20.17.18[M][0@0][0].dav): Failed to open stream: No such file or directory in <b>/var/www/domain.com/camengine.php</b> on line <b>397</b><br />

То есть файл не может записаться… или не записаться… я не знаю

root@stockholm:~# ls -l /var/www/domain.com/
total 64
-rwxr-xr-x 1 root     root        61 Jan  4 20:25 bashtophp.sh
-rw-r--r-- 1 root     root      6760 Jan  4 20:01 cambot.php
-rw-r--r-- 1 root     root     37157 Jan  4 20:15 camengine.php
-rw-r--r-- 1 www-data www-data    23 Jan  4 15:41 index.php
-rw-r--r-- 1 www-data www-data    26 Jan  4 16:08 robots.txt
drwxrwxrwx 2 www-data www-data  4096 Jan  4 20:40 video

Как видите, пытался выбрать права 777 для папки video - не помогло. Скажите, куда копать?

 , ,

accountnujen
()

Как выяснить, по какой причине curl соединение с сервером может длиться более 30 секунд?

Форум — General

Есть VPS сервер (ubuntu) и ip-камера с белым адресом. Сервер каждые 10 минут делает запросы на камеру на проверку новых видео. Одна проверка включает в себя 6 запросов (проверка доступности ip, получение токена, установка параметров, полученные данных, остановка токена, удаление токена). curl запрос выглядит вот так:

curl_setopt_array($ch, [CURLOPT_USERPWD => 'admin:admin', 
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_TIMEOUT => 500,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_HTTPAUTH=>CURLAUTH_ANY
]);

Сегодня по неизвестной мне причине причине начал получать ошибку Connection timed out after 10001 milliseconds. Ошибка возникает на любом из 6 этапов. Для эксперимента запустил цикл со 100 такими запросами. 49 были с ошибкой.

Увеличил значение CONNECTTIMEOUT до 30, но это никак не повлияло положительно. Теперь я стал получать ошибки Connection timed out after 30001 milliseconds.

Я предполагаю, что проблема на стороне сервера, так как если выполнять эти же запросы с домашнего ПК, то на 100 запросов будет 0 ошибок. Камера не находится в одной локальной сети в ПК. ОДНАКО, если на домашнем ПК включить VPN с ip моего сервера, то будут те же самые ошибки. То есть явно что-то не так с сервером.

Ростелеком (провайдер камеры) говорит, что ни в чём не виноват и это проблема у меня.

Подскажите, как можно выяснить причину длительного соединения?

 ,

accountnujen
()

последние полученные UTXO базы данных

Форум — General

Есть множество репозиториев, который позволяют превратить blockchain в UTXO. Но я не могу найти, где я бы мог скачать готовые UTXO. Я нахожу только инструкции о том, как мне самому получить такую базу данных. Bitcoin Core спрогнозировала, что скачивание базы данных продлится 55 часов, что несомненно много, поэтому я бы хотел спросить, может быть вы знаете репозитории, куда выкладывают последние полученные UTXO базы данных?

 ,

accountnujen
()

Куда прописывать php_admin_flag display_startup_errors on?

Форум — General

В сети вычитал, что htaccesss тормозит сайты, поэтому там рекомендовали избегать его использование. Тогда появляется вопрос, куда мне прописать php_admin_flag display_startup_errors on? Когда я добавлял сайт, я создавал файл nano /etc/apache2/sites-available/huemoe123.conf и там прописывал

<VirtualHost *:80>
  ServerAdmin username@huemoe123.wbq
  ServerName huemoe123.wbq
  ServerAlias www.huemoe123.wbq
  DocumentRoot /var/www/huemoe123.wbq/public
...

затем делал a2ensite huemoe123

Я попытался прям в нём, перед закрытием тега прописать php_admin_flag display_startup_errors on, так же делал systemctl restart apache2, однако это не помогло.

Скажите пожалуйста, куда прописывать это правило?

 ,

accountnujen
()

Есть ли готовый движок/библиотека анономайзера (браузер в браузере) для личного использования?

Форум — General

Есть европейский сервер. Хочется получить возможность оперативно открывать сайты, которые у нас не открываются. На этом сервере уже стоит OpenVPN и я им пользуюсь, однако это совсем неудобно, когда речь заходит о чужом ПК. Ставить OpenVPN клиент, подсовывать ему файл .ovpn, потом это всё удалять - не самое лучшее решение. Можно, конечно, и тунели настраивать, но это, извините меня, совсем не оперативно.

Поэтому хочется иметь свой браузер в браузере. Я ставил guacomole и xrdp, но так как на сервере отсутствует видеокарта - комфортной работой назвать это очень сложно.

Я для теста я набросал вот такое:

<?php
$url = "Google.com";
$ch = curl_init($url);
curl_setopt_array($ch, [CURLOPT_CONNECTTIMEOUT => 20, CURLOPT_RETURNTRANSFER => 1, CURLOPT_FOLLOWLOCATION => 1]);
$result = curl_exec($ch);
?>
<div><?=$result?></div>

И оно не работает так, как хотелось бы. Я понимаю, что я должен настраивать заголовки, правильно перенаправлять сертификаты и прочая лабуда а-ля «пересобрать все ссылки на сайте», поэтому хочу спросить у вас: а есть ли готовый такой движок (хотя это сложно назвать движком), который в итоге предложил бы мне тот самый браузер в браузере?

 ,

accountnujen
()

По какой причине systemd перестал запускаться?

Форум — General

Последний раз скрипт выполнялся 13 часов назад, хотя ошибок никаких нет. Как понять, в чём причина?

root@instance:~# systemctl status croncam.service
● croncam.service - Cam online
     Loaded: loaded (/etc/systemd/system/croncam.service; static; vendor preset: enabled)
     Active: active (running) since Fri 2022-07-15 02:25:12 MSK; 13h ago
TriggeredBy: ● croncam.timer
   Main PID: 107552 (bashtophp.sh)
      Tasks: 2 (limit: 28554)
     Memory: 9.3M
     CGroup: /system.slice/croncam.service
             ├─107552 /bin/bash /root/bashtophp.sh
             └─107553 php-cgi -f /var/www/website/public/cam2/camengine.php cron=true

Jul 15 02:25:12 instance systemd[1]: Started Cam online.
Jul 15 02:25:13 instance bashtophp.sh[107553]: <br>здратути<br><pre>Array
Jul 15 02:25:13 instance bashtophp.sh[107553]: (
Jul 15 02:25:13 instance bashtophp.sh[107553]:     [time] => 2022-07-15%2002:15:12
Jul 15 02:25:13 instance bashtophp.sh[107553]:     [status] => 0
Jul 15 02:25:13 instance bashtophp.sh[107553]: )



root@instance:~# systemctl status croncam.timer
● croncam.timer - Run every 10 minutes
     Loaded: loaded (/etc/systemd/system/croncam.timer; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-07-03 13:56:01 MSK; 1 weeks 5 days ago
    Trigger: n/a
   Triggers: ● croncam.service

Jul 03 13:56:01 instance systemd[1]: Started Run every 10 minutes.

Я предполагаю, что если я его перезапущу - он будет работать как раньше, но хотелось бы знать причину этой остановки.

service

[Unit]                                                                                                                                                                                                                                                            
Description=Cam online                                                                                                                                                                                                                                            
                                                                                                                                                                                                                                                                  
[Service]                                                                                                                                                                                                                                                         
Type=simple                                                                                                                                                                                                                                                       
ExecStart=/root/bashtophp.sh

timer

[Unit]                                                                                                                                                                                                                                                            
Description=Run every 10 minutes                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                  
[Timer]                                                                                                                                                                                                                                                           
OnBootSec=1min                                                                                                                                                                                                                                                    
OnUnitActiveSec=10min                                                                                                                                                                                                                                             
Unit=croncam.service                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                  
[Install]                                                                                                                                                                                                                                                         
WantedBy=multi-user.target

 ,

accountnujen
()

Как установить xrdp на ARM Oracle Linux (CentOS)?

Форум — General

Есть ARM сервер Oracle, куда установлен Oracle Linux 8. Как я понял, это производная от Centos. Пакет xrdp не устанавливается, так как не найден. Я правильно понимаю, что xrdp установить на arm машину с Oracle Linux невозможно? Или есть какой-то репозиторий, где есть такой пакет:

[root@stockholm ~]# yum -y install xrdp tigervnc-server
Last metadata expiration check: 0:08:20 ago on Thu 26 May 2022 06:01:35 PM GMT.
No match for argument: xrdp
Error: Unable to find a match: xrdp`

 , ,

accountnujen
()

Как в rclone сделать двухстороннюю синхронизацию?

Форум — General

Я создал конфиг для Яндекс Диска и запустил демон: rclone mount yadisk:/reserve /var/www/website/public/test/reserve --umask 000 --allow-non-empty --allow-other --dir-cache-time 12h --buffer-size 64M --vfs-cache-mode full --vfs-read-chunk-size 40M --vfs-read-chunk-size-limit 512M --uid 1000 --vfs-cache-max-age 24h --vfs-cache-max-size 4G --log-level INFO --log-file /home/ubuntu/yadisk.log --daemon

Но синхронизация работает однобоко: Если на сервере создать папку или копировать файл, то в Яндекс Диске появится эта папка или файл Но если в Яндекс Диске создать папку, то её не будет видно на сервере -bash: cd: 555: No such file or directory

Тоже самое касается и Mail Облака.

Подскажите, как сделать, чтобы синхронизация в обе стороны работала?

 , , ,

accountnujen
()

Как можно понять, по какой причине systemd перестал выполнять операции?

Форум — General

Мне нужно было, чтобы сервер каждые 10 минут стучался к моей ip камере и проверял новые видео. У меня есть php файл, bash файл и 2 файла для systemd (service и timer) bash нужен лишь для того, чтобы он отправлял на php нужный запрос bashtophp.sh

( читать дальше... )

croncam.service

( читать дальше... )

croncam.timer

( читать дальше... )

Время от времени в логах у меня вылетает вот такая ошибка:

May 03 21:57:43 instance systemd[1]: /etc/systemd/system/croncam.service:1: Assignment outside of section. Ignoring.

В логах у меня она повторяется 80 раз. Никаких предпосылок нет. К примеру, 7-го числа эта ошибка была 5 раз под ряд, а 8-го её вообще не было, 9-го снова 3 раза, а 10-12-го тихо. И эта ошибка никогда не влияла на работу systemd. Он работал штатно. Вот пример лога в обычный день: journalctl -u croncam.service

( читать дальше... )

Но 3 мая у меня произошла такая сиутация: journalctl -u croncam.service

( читать дальше... )

тупо в May 03 12:54:10 скрипт остановился. Никаких ошибок нет, ничего нет. Когда я обнаружил это - в May 03 21:57 сделал запрос systemctl status croncam.service и там в графе Active было (кажется) waiting. Сейчас systemctl status croncam.service выглядит вот так: systemctl status croncam.service

( читать дальше... )

Вот так выглдяит systemctl status croncam.timer systemctl status croncam.timer

( читать дальше... )

Теперь вопросы: Как узнать, почему 3 мая в 12 часов у меня остановился systemd? Что это за ошибка Assignment outside of section. Ignoring.? Как сделать, чтобы systemd не останавливался?

 ,

accountnujen
()

Как достать все поля, но где один столбец уникальный?

Форум — General

Есть запрос, который возвращает https://i.stack.imgur.com/PK4xT.png Мне нужно достать все столбцы, но только уникальных записей (id 2,3,5,10,11,12). То есть те, где типы (поле type) не повторяются. Достать только уникальные столбцы можно через Distinct, но он возвращает не все столбцы, а мне нужны все. Также в сети говорят, что можно использовать SELECT * WHERE ….. GROUP BY type, но у меня вылетает ошибка:

#1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'roomtest.rooms.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by.

В сети советуют убрать в sql_mode only_full_group_by, но проблема в том, что в моей mysql 8 и так нет only_full_group_by…

Подскажите, каким образом можно достать все столбцы уникальных записей?

Запрос выглядит вот таким образом:

SELECT * FROM rooms WHERE id NOT IN (SELECT room_id FROM `bron` WHERE
'2022-03-04 13:00:00' <= end AND '2022-03-04 13:00:00' >= start OR
'2022-03-06 11:00:00' <= end AND '2022-03-06 11:00:00' >= start)

 ,

accountnujen
()

Как получить записи по диапазону дат, если есть только начало и конец?

Форум — General

Есть таблица с номерами

+-----+--------+
| id  | price  |
+-----+--------+
| 1   | 500    |
| 2   | 500    |
| 3   | 700    |
| 4   | 1000   |
+-----+--------+

и таблица с забронированными номерами

+-----+---------+----------+-------------+-------------+----------+--------+
| id  | person  | room_id  | start       | end         | s_time  | e_time  | 
+-----+---------+----------+-------------+-------------+---------+---------+
| 1   | Ivan    | 1        | 2022-03-01  | 2022-03-04  | 1       | 1       |
| 2   | Eva     | 1        | 2022-03-05  | 2022-03-06  | 1       | 0       |
| 3   | Maria   | 2        | 2022-03-01  | 2022-03-04  | 1       | 0       |
| 4   | Peter   | 3        | 2022-03-01  | 2022-03-02  | 1       | 0       |
| 5   | Max     | 3        | 2022-03-06  | 2022-03-07  | 1       | 1       |  
| 6   | Bob     | 4        | 2022-03-06  | 2022-03-07  | 0       | 0       | 
+-----+---------+----------+-------------+-------------+----------+--------+

s_time и e_time - это время заезда и выезда, где 0 - это до полудня, а 1 - после полудня. К примеру в записи id=5 стоит s_time 1 и e_time 1, значит заезд после полудня и выезд после полудня.

Мне нужно узнать, какие номера свободны с 4 по 6 число с заездом после полудня и выездом до полудня. Для этого я хочу получить в начале все номера, которые заняты в этот промежуток, а затем получить все номера, кроме тех, что заняты.

По факту id с занятыми номерами с 4 по 6 число - это id1, id2 и id6, потому что в id1 выезд ПП, в id2 пятого числа занято, а в id6 заезд ДП.

Подскажите пожалуйста, как получить эти id?

 ,

accountnujen
()

Как в таблице хранить свободные даты для номеров в гостинице?

Форум — General

Не совсем гостиница. Скорее booking или airbnb - то есть количество номеров внушительное. Нужно узнать о свободных номерах на заданный период времени (условно, с 20 марта по 25 марта). То есть отразить те гостиницы, в которых заданные дни свободны.

  1. Как должна выглядеть структура таблицы свободных и занятых дат?
  2. И как должна выглядеть структура стоимости номеров, если весь месяц может быть одна стоимость, а на праздники - другая стоимость?

Я должен создавать для каждого арендуемого объекта отдельную таблицу, где каждая запись будет соответствовать каждому дню? Просто в моём понимании, выборка может занимать длительное время. Разумеется это быстрее, чем если бы я имел таблицу «Объекты», где каждая запись - это гостиница, а в столбце, в формате json, хранил бы массив с днями - это уже совсем клиника.

 ,

accountnujen
()

Как с помощью ffmpeg нарезать видео, зная конечный размер файла?

Форум — General

В зависимости от картинки на видео - файл имеет разный размер.

Если размер файла превышает 49мб, то мне нужно нарезать его на куски равные 49. Если файл весит, условно, 89мб при длительности в 315 секунд, то получить два файла можно таким образом: 315/(89/49). Выходит, что я должен поделить видео на 175 секунд и 140. И всё было бы хорошо, но я для теста взял видео на 315 секунд и нарезал на куски по 10 секунд: файлы имеют размер от 2 до 3мб. Можно, конечно, подстраховаться и делить на 40, но я не уверен, что невозможен расклад, при котором часть ролика будет иметь более значительный размер, чем остальная часть.

Если предположить, что огромной разницы не будет и я всегда на выходе буду получать файлы ~40мб, то у меня возникает вторая проблема: я бы хотел, чтобы длина последнего файла была более 10 секунд. Я имею в виду такой расклад, когда видео при делении на равные куски имеет остаток условно 3 секунды. Хотелось бы уточнить, возможно ли как-нибудь увеличить последний кусок, за счёт предпоследнего: последний на 7 больше, предпоследний на 7 меньше.

 

accountnujen
()

Какой конфиг должен быть на vnc сервере при подключении к ubuntu-desktop?

Форум — General

Вот так у меня выглядит RDP подключение https://habrastorage.org/webt/61/7e/12/617e12f31b51e331834787.jpeg

а вот так выглядит VNC https://habrastorage.org/webt/61/7e/13/617e1309d2a50990518323.jpeg

это всё окно. то есть в результате у меня серый прямоугольник с открытой в центре папкой. ни браузер, ни консоль - открыть не могу (не знаю как). И разрешение экрана очень странное.

вот так у меня сконфигурирован VNC (конфиг взят из сети)

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &

Скажите, что нужно прописать в конфиге, чтобы получить картинку приближённую к RDP?

 ,

accountnujen
()

Почему так сильно лагает RDP на linux?

Форум — General

Есть 2 сервера: 8 ядер xeon + 8гб озу 4 ядра Ampere + 24гб озу

Ставил связки ubuntu desktop + xrdp и xfce4 + VNC. Всё очень сильно лагает.

На сервере скорость больше гигабита (спидтестом померил через браузер) у меня дома скорость 70-80мбит

Такое ощущение, что помимо установки оболочки и rdp сервера, нужно что-то ещё ставить или что-то настраивать.

Вот видео, чтобы вы понимали, какие задержки у меня: https://disk.yandex.ru/i/ceWu6nnRlp94ow

 ,

accountnujen
()

Как оптимизировать запрос при конвертации dav в mp4?

Форум — General

Камера снимает в dav h265 (изменить нельзя) и мне нужно конвертировать видео в любой формат, который телеграм воспринимает как видео (mp4, avi и т.д.). В сети есть похожий вопрос, где решение:

ffmpeg -y -i input-file.dav -c:v libx264 -crf 24 output-file.mp4

однако данный код при конвертации 16-и секундного видео на 6и ядерном xeon выполняется за 13 секунд, а на 4ёх ядерном ARM Ampere 23 секунды. И можно было бы говорить, что я упираюсь в производительность серверов, однако при декодинге высвечиваются такие параметры видео:

Input #0, dhav, from '111.dav':

Video: hevc (Main), yuv420p(tv), 1920x1080, 25 fps, 100 tbr, 1k tbn

и конвертируются они вот в это

Output #0, mp4, to '111.mp4':

Video: h264 (libx264) (avc1 / 0x31637661),yuv420p, 1920x1080, q=-1--1, 100 fps, 12800 tbn, 100 tbc

То есть с нифига он берёт и меняет параметры видео. Если я в запросе изменю fps со 100 до родных 25, то получу на Ampere уже 9 секунд вместо 23. FPS это базовое и примитивное, что бросается в глаза, но также здесь есть параметры tbn, tbc и ещё наверняка что-то, о чём я не знаю, но оно зачем-то изменилось. FFMPEG как-то не очень оптимально использует ресурсы, которые у него есть.

Поэтому вопрос: как можно оптимизировать запрос, чтобы получить максимально быстрый результат? p.s. меня не столько волнует размер файла, сколько время его кодирования.

 

accountnujen
()

RSS подписка на новые темы