Snapshot битые картинки даёт в 80-90% случаев

inpost

Member
Здравствуйте. Код очень простой:

PHP:
    curl_setopt($curl, CURLOPT_URL, "https://find-bride.com:8444/rest-api/stream/snapshot");
    curl_setopt($curl, CURLOPT_POSTFIELDS, '{"streamName":"g-'.$k.'"}');
    $content = json_decode(curl_exec($curl));
    if(isset($content->data) && !empty($content->data)) {
        imagejpeg(imagecreatefromstring(base64_decode($content->data)), IRB_ROOT.'/3/'.$date.'_'.$k.'.jpg');
    }
Суть в том, что ранее снапшоты работали почти все более-менее нормального качества, иногда только "квадратило". Сейчас картина такая:


Используется кодек сейчас VP8 . Согласно этой теме:
https://forum.flashphoner.com/threads/Восстановление-качества-потока.11436/#post-18081

Хочу заметить, что качество потока перестало падать почти на всех трансляциях. Но я не уверен что виноват VP8, или обновление Debian, или обновление Flashphoner, в данной ситуации.
Скажите, как можно исправить проблему с снапшотами?
 

Max

Administrator
Staff member
Добрый день.
Уточните, пожалуйста, следующее:
1. Какая версия WCS используется?
2. С какими настройками (приведите файл flashphoner.properties)?
3. Искажено ли изображение самих потоков, с которых делается снапшот?
 

inpost

Member
1) v. 0.5.28.2747 - 5.1.3599-0112e467c21db563ea7641f31e98595c8fd4e4ae
2)
Code:
media_port_from        =31001
media_port_to          =32000

codecs                   =opus,alaw,ulaw,g729,speex16,g722,mpeg4-generic,telephone-event,vp8,h264,flv,mpv
codecs_exclude_sip       =mpeg4-generic,flv,mpv
codecs_exclude_streaming =flv,telephone-event
codecs_exclude_sip_rtmp  =opus,g729,g722,mpeg4-generic,vp8,mpv

#websocket ports
ws.port                 =8080
wss.port                =8443
webrtc_cc_min_bitrate = 500000
webrtc_cc_max_bitrate = 15000000
suppress_audio         =true
disable_rest_requests=true
3) Нет, не искажено. Но при указании фиксироанного битрейта fps низкий в некоторых трансляциях. Но я бы не сказал, что это виновато, так как проблемы с снапшотами даже для тех трансляций, что идут почти идеально.
 

Max

Administrator
Staff member
При снятии снапшота включается транскодинг, т.к. необходимо декодировать кадр. По умолчанию используется декодер на основе ffmpeg, попробуйте использовать декодер на основе Open H.264:
Code:
encoder_priority=OPENH264
decoder_priority=OPENH264
 

inpost

Member
Это не помогло. Замечу важный момент, что сейчас codesc: vp8, h264, а не наоборот!
Если поменять местами на h264,vp8 - начинает вновь нормально создаваться.
Но vp8 поставили вперёд из-за соседней темы, где min_bitrate не работал. Я видел в Patch Note, что поправили от 16 Oct 2018 min_bitrate. Установил и посмотрю как с ним работает.
 

Max

Administrator
Staff member
Действительно, при публикации VP8 потока могут создаваться испорченные снапшоты. Мы работаем над этим в рамках внутреннего инцидента WCS-1603. Пока рекомендуем использование H264, в последних сборках публикация с этим кодеком работает нормально.
 

Max

Administrator
Staff member
В сборке 5.1.3653 обнаружена регрессия при воспроизведении потоков с транскодингом - сборка для обновления не рекомендуется. Сообщим, когда проблема будет исправлена.
 
Top