Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: ffmeg, снапшот с rtsp, картинка в вертикальных полосах  (Прочитано 814 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн YDenis

  • Автор темы
  • Активист
  • *
  • Сообщений: 605
    • Просмотр профиля
Здравствуйте.
Подскажите пожалуйста.
Код:
$url1="rtsp://10.12.11.101:554/user=admin_password=*****_channel=1_stream=0.sdp?real_stream"; 
$cam1="/var/www/cached/cam1.jpg";
exec('ffmpeg -y -i "'.$url1.'" -f image2 -vframes 1 '.$cam1.'');
Суть: делает снапшот с rtsp потока ip камеры.
Проблема: получаются картинки верхняя часть чуть видна нормально, остальная честь - вертикальные полосы.
Что в коде можно изменить?

благодарю

Оффлайн The Green Side

  • Старожил
  • *
  • Сообщений: 1177
    • Просмотр профиля
У меня практически такой же код работает на Ubuntu 18.04, отличия:
1) камера в интернете по https
2) картинка сохраняется в .png
3) выполняется в cron
Никаких проблем нет
Debian 11, Debian 11 Server

Оффлайн YDenis

  • Автор темы
  • Активист
  • *
  • Сообщений: 605
    • Просмотр профиля
У меня практически такой же код работает на Ubuntu 18.04, отличия:
1) камера в интернете по https
2) картинка сохраняется в .png
3) выполняется в cron
Никаких проблем нет

Можете кодом поделиться?

сенк

Оффлайн The Green Side

  • Старожил
  • *
  • Сообщений: 1177
    • Просмотр профиля
Только обратите внимание, что экранирование символа % такое именно в cron используется
В bash оно вроде не нужно
0,5,10,15,20,25,30,35,40,45,50,55 6-19 * * * /usr/bin/ffmpeg -i https://camera.-----.com/---/-----.m3u8 -vframes 1 /home/usernames/pics/$(date +\%Y-\%m-\%d-\%H-\%M).png 1> /dev/null 2>> /dev/null
Debian 11, Debian 11 Server

Оффлайн YDenis

  • Автор темы
  • Активист
  • *
  • Сообщений: 605
    • Просмотр профиля
Только обратите внимание, что экранирование символа % такое именно в cron используется
В bash оно вроде не нужно
0,5,10,15,20,25,30,35,40,45,50,55 6-19 * * * /usr/bin/ffmpeg -i https://camera.-----.com/---/-----.m3u8 -vframes 1 /home/usernames/pics/$(date +\%Y-\%m-\%d-\%H-\%M).png 1> /dev/null 2>> /dev/null

благодарю.

Оффлайн ALiEN175

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5501
  • Сделай шаг и пройдешь милю
    • Просмотр профиля
ASUS P5K-C :: Intel Xeon E5450 @ 3.00GHz :: 8 GB DDR2 :: Radeon R7 260X :: XFCE
ACER 5750G :: Intel Core i5-2450M @ 2.50GHz :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн YDenis

  • Автор темы
  • Активист
  • *
  • Сообщений: 605
    • Просмотр профиля
Добрый.
На правах топикстартера отпишусь.
Не получается ничего. Сделал в кроне сохранение снапшотов. Все так же в полосах.
59 5 * * *  /usr/bin/ffmpeg -y -i rtsp://10.12.11.101:554/user=admin_password=*****_channel=1_stream=0.sdp?real_stream -f image2 -vframes 1 /var/www/cached/cam1.jpgГде-то натыкался на параметр ffmpeg (-ss), позволяющий брать только полный кадр. Но что-то ума не хватает внедрить его.
Может кто подскажет чего?

благодарю

Оффлайн The Green Side

  • Старожил
  • *
  • Сообщений: 1177
    • Просмотр профиля
Цитировать
       -ss position (input/output)
           When used as an input option (before "-i"), seeks in this input file to position. Note that in most formats it is not
           possible to seek exactly, so ffmpeg will seek to the closest seek point before position.  When transcoding and -accurate_seek
           is enabled (the default), this extra segment between the seek point and position will be decoded and discarded. When doing
           stream copy or when -noaccurate_seek is used, it will be preserved.

           When used as an output option (before an output url), decodes but discards input until the timestamps reach position.

           position must be a time duration specification, see the Time duration section in the ffmpeg-utils(1) manual.

Получается как-то так:
59 5 * * *  /usr/bin/ffmpeg -y -ss 0 -i rtsp://10.12.11.101:554/user=admin_password=*****_channel=1_stream=0.sdp?real_stream -f image2 -vframes 1 /var/www/cached/cam1.jpg

Правда с "моей" камерой это не работает, говорит некуда там проматывать:
https://camera.****.com/******.m3u8: could not seek to position 72397.552
Делает обычный снимок
Debian 11, Debian 11 Server

 

Страница сгенерирована за 0.101 секунд. Запросов: 26.