Почему не происходит перекодировка RTSP с H.265 на H.264?

Задача заключается в том, чтобы преобразовать поток с камеры в формате H265 в поток H264. 

Команда, используемая для запуска rtsp-simple-server, выглядит следующим образом: 
<pre><code>ffmpeg -rtsp_transport tcp -i 'rtsp://foo:bar@192.168.12.34:554/' -f lavfi -i aevalsrc=0 -vcodec copy -acodec aac -map 0:0 -map 1:0 -c:v libx264 -pix_fmt yuv420p -shortest -strict experimental -f rtsp -rtsp_transport tcp -listen 1 rtsp://10.10.10.10:8554/baz</code></pre>

Однако при выполнении этой команды возникает ошибка, которая указывает на проблемы с соединением, а также отсутствие правильного решения: 
<pre><code>[tcp @ 0x55ca2df5bb80] Connection to tcp://10.10.10.10:8554?timeout=0 failed: Connection refused
Could not write header for output file #0 (incorrect codec parameters ?): Connection refused
Error initializing output stream 0:1 --</code></pre>

Интересно, что другие потоки, например, H264 в H264, успешно работают при аналогичных запусках. 

Как можно устранить ошибку с соединением при преобразовании потока H265 в H264?
  • 4 декабря 2024 г. 13:23
Ответы на вопрос 3
Ошибка, которую вы получаете, связана с тем, что `ffmpeg` не может подключиться к `rtsp-simple-server` на указанном адресе и порте (10.10.10.10:8554). Вот несколько шагов, которые вы можете предпринять для решения проблемы:

1. **Проверьте адрес и порт**: Убедитесь, что `rtsp-simple-server` действительно запущен на IP-адресе `10.10.10.10` и порту `8554`. Попробуйте подключиться к этому адресу с помощью утилиты, такой как `telnet` или `nc`, чтобы проверить, доступен ли сервер.

   ```bash
   telnet 10.10.10.10 8554
   ```

2. **Настройки rtsp-simple-server**: Проверьте конфигурацию вашего `rtsp-simple-server`. Убедитесь, что сервер настроен на прослушивание входящих соединений на нужном порту и IP-адресе, и что он поддерживает формат H.265.

3. **Проблемы с фильтрацией**: Возможно, что на вашем оборудовании или в сетевой инфраструктуре есть брандмауэр или NAT, блокирующие соединение. Проверьте настройки брандмауэра на сервере и в сети. Попробуйте временно отключить брандмауэр для проверки.

4. **Проблемы с кодеками**: Убедитесь, что у вас установлены все необходимые кодеки для работы с H.265 и H.264. Хотя вы упомянули, что потоки H.264 работают без проблем, убедитесь, что вы используете последнюю версию `ffmpeg`, поддерживающую оба кодека.

5. **Проблемы с правами**: Убедитесь, что у процесса, запустившего `ffmpeg`, есть необходимые права для подключения к указанному порту и адресу.

6. **Проверьте версии и зависимости**: Убедитесь, что ваши библиотеки для работы с кодеками (libx264 для H.264 и поддержка H.265) правильно установлены и совместимы с вашей версией `ffmpeg`.

7. **Логи сервера**: Проверьте логи `rtsp-simple-server`, чтобы увидеть, есть ли записи о попытках подключения и какие ошибки могут возникать на стороне сервера.

Если после этих проверок проблема все еще не решена, попробуйте использовать другой подход для преобразования потоков, например, запустить `ffmpeg` на другом сервере и использовать `-f tee` для разделения потока для других обработчиков.
Судя по логу — нет. На входе 256 на выходе 264. Но это не точно.
Так Вы вроде не кодируете поток, а просто его копируете...
Похожие вопросы