pnzdevelop
Member
Задача - получить видеокадр, сохранить его в jpg (будет в списке видео)
Как это сделать через api?
Как это сделать через api?
stream.snapshot();
Скажите как вы это сделалиСначала мы реализовали загрузку PNG-картинки по запросу.
- Делаем асинхронный запрос stream.snapshot()
- Сервер сохраняет картинку в файловой системе.
- Пользователь, который запрашивал снапшот получает ссылку на картинку по http и может его вставить HTML тэгом
$(document).ready(function () {
try {
Flashphoner.init({
flashMediaProviderSwfLocation: '/js/media-provider.swf',
receiverLocation: '/js/WSReceiver2.js',
decoderLocation: '/js/video-worker2.js'
});
var urlServer = setURL();
var SESSION_STATUS = Flashphoner.constants.SESSION_STATUS;
var STREAM_STATUS = Flashphoner.constants.STREAM_STATUS;
function createThumbs(session) {
$.each($(".fp_embed_player"),function() {
var _this = $(this);
var stream = session.createStream({name:$(_this).data('fid')});
stream.snapshot();
console.log($(_this).data('id')+" SNAP_START");
stream.on(STREAM_STATUS.SNAPSHOT_COMPLETE, function(stream) {
console.log($(_this).data('id')+" OK");
$("#thumb-"+$(_this).data('id')).attr('src',"data:image/png;base64,"+stream.getInfo());
});
});
}
if (Flashphoner.getSessions().length === 0) {
var mediaOptions = {"iceServers": [{'url': 'turn:*********:3478?transport=tcp', 'username': '**********', 'credential': '***********'}]};
Flashphoner.createSession({urlServer: urlServer, mediaOptions: mediaOptions}).on(SESSION_STATUS.ESTABLISHED, function (session) {
createThumbs(session);
}).on(SESSION_STATUS.DISCONNECTED, function () { }).on(SESSION_STATUS.FAILED, function () { });
} else {
var session = Flashphoner.getSessions()[0];
createThumbs(session);
}
} catch (e) {
console.log(e);
}
});
var stream = session.createStream({name:'rtsp://host:554/live.sdp'});
stream.snapshot();
Нашёл закономерность. Когда поток долго никем не смотрится, видимо он отключается от сервера. И получить миниатюры с этого потока не представляется возможным. Как только нажал кнопку play, при следующем обновлении страницы миниатюра появится.В итоге "notifyStreamStatusEvent" = info:"Stream not found"
rtsp_activity_timer_timeout
rtsp_activity_timer_cool_off_period
/rest-api/rtsp/startup
/rest-api/rtsp/shutdown
stdClass Object
(
[timestamp] => 1509367742361
[status] => 500
[error] => Internal Server Error
[exception] => com.flashphoner.server.manager.controller.exception.InternalErrorException
[message] => RtspAgent rtsp://ip:554/user=admin&password=&channel=1&stream=1?.sdp already exist
[path] => /rest-api/rtsp/startup
)
stdClass Object
(
[timestamp] => 1509367742677
[status] => 404
[error] => Not Found
[exception] => com.flashphoner.server.manager.controller.exception.NotFoundException
[message] => NOT FOUND
[path] => /rest-api/stream/snapshot
)
Да, может быть воспроизведена с вашим потоком. Как будет дальнейшая информация - сообщим.проблема с "серым квадратом"
Причина, по-видимому, та же, что для https://forum.flashphoner.com/threads/Зелёные-фреймы-в-плеере.11162/проблема с "серым квадратом"