Как воспроизводить видео с заданного времени

Max

Administrator
Staff member
В таком случае соберите отчет с дебаговыми клиентскими логами, как описано здесь, и дампом входящего трафика (сбор дампа необходимо запустить до начала публикации). Если нам удастся проиграть этот дамп, то сможем воспроизвести проблему в своем окружении. Логи и дамп вышлите, используя эту форму.
Как временное решение, используйте Firefox на этих устройствах.
 

Serg

New Member
Добрый день. Решили по вашему совету переделать записи с одной большой и слушать её по меткам времени на несколько маленьких файлов записи эфира. Потеря записанного эфира между остановкой и стартом новой записи всего одна миллисекунда, что вполне приемлемо. Теперь возникла другая задача: как мне корректно прослушать полностью всё интервью из нескольких файлов в браузере. В документации описана возможность проигрывать в браузере по HLS плейлисты m3u8. Существует ли штатный механизм формирования плейлистов m3u8 внутри сервера?
 

Max

Administrator
Staff member
В документации описана возможность проигрывать в браузере по HLS плейлисты m3u8. Существует ли штатный механизм формирования плейлистов m3u8 внутри сервера?
В данном случае HLS не подойдет, т.к. с сервера можно проиграть по HLS только опубликованный на нем поток, но не набор файлов.
Теперь возникла другая задача: как мне корректно прослушать полностью всё интервью из нескольких файлов в браузере.
1. На стороне сервера можно склеить эти файлы при помощи ffmpeg, после чего положить в records и играть в браузере как один файл.
2. Либо положить файлы в media, а затем играть их поочередно как VOD в браузере
 

Serg

New Member
Добрый день. Обнаружил в документации возможность "Захват файла, размещенного на AWS" с S3 облака Amazon. Наши сервера размещены на облачной инфраструктуре Selectel и нам намного быстрее и удобнее использовать S3 хранилище Selectel
Подскажите, есть ли возможность использовать это хранилище и как настроить подключение?
Если необходимо, я могу предоставить тестовую булку с доступом.
 

Max

Administrator
Staff member
Подскажите, есть ли возможность использовать это хранилище и как настроить подключение?
Пока такой возможности нет, загрузка возможна только с AWS S3. Создали тикет WCS-3116, чтобы добавить соответствующую настройку. Просим предоставить доступ к S3 bucket для тестирования, с возможность загрузки тестовых файлов. Доступы можно выслать через эту форму.
 

Serg

New Member
В таком случае соберите отчет с дебаговыми клиентскими логами, как описано здесь, и дампом входящего трафика (сбор дампа необходимо запустить до начала публикации). Если нам удастся проиграть этот дамп, то сможем воспроизвести проблему в своем окружении. Логи и дамп вышлите, используя эту форму.
Как временное решение, используйте Firefox на этих устройствах.
Добрый день. Я отправлял дамп. Получилось ли увидеть проблему?
 

Max

Administrator
Staff member
Добрый день.
Добрый день. Я отправлял дамп. Получилось ли увидеть проблему?
По тикету WCS-3109 проблема воспроизводится. Выглядит так, что проблема проявляется только в Chrome после вот этого фикса https://groups.google.com/g/discuss-webrtc/c/Zrsn2hi8FV0/m/KIbn0EZPBQAJ. Ищем соответствующий багрепорт.
 

Max

Administrator
Staff member
Добрый день.
По тикету WCS-3116. В сборке 5.2.939 добавлена возможность указать полный URL файла в S3 хранилище, что дает возможность захватывать VOD с любого S3 совместимого хранилища. Пример URL для Selectel
Code:
vod://s3/https://s3.selcdn.ru/mystorage/file.mp4
Пример настроек для Selectel
Code:
aws_s3_credentials=ru-1a;login;password
Подробнее здесь.
По тикету WCS-3109. Проблема воспроизводится только на некоторых устройствах Samsung и на некоторых устройствах Xiaomi. Для того, чтобы снизить уровень искажений, рекомендуется следующее:
1. Публикация моно звука
Code:
constraints: {
  audio: {
     stereo: false
  }
}
2. Подъем битрейта публикуемого звука
Code:
constraints: {
  audio: {
     bitrate: 64000
  }
}
3. Отключение gain node в Chrome
Code:
Flashphoner.init({
    flashMediaProviderSwfLocation: '../../../../media-provider.swf',
    createMicGainNode: false
});
 

Max

Administrator
Staff member
Добрый день.
По тикету WCS-3071. В сборке 5.2.957 добавлена возможность указать отдельный каталог для кэширования фрагментов при помощи настройки
Code:
mp4_cutter_dir=/tmp
Подробности здесь.
 

Serg

New Member
Добры день. Мы сохраняем из эфира по событиям (начать/остановить) аудио записи разговоров без видео. Но минимальный файл даже с одной секундой звука весит минимум 2 мб! Очень сильно расходуется место на дисках. Как можно уменьшить размеры записей? Вот пример файла - https://stream.mythospro.ru/23-27928-695.mp4
 

Max

Administrator
Staff member
Добрый день.
Добры день. Мы сохраняем из эфира по событиям (начать/остановить) аудио записи разговоров без видео. Но минимальный файл даже с одной секундой звука весит минимум 2 мб! Очень сильно расходуется место на дисках. Как можно уменьшить размеры записей?
Длительность записи в Вашем примере по ffprobe составляет 4 секунды. Возможно, что звука там на одну секунду, но длительность записи определяется ключевыми кадрами потока, то есть файл всегда будет не короче минимального интервала между ключевыми кадрами.
Уменьшить размеры записей можно, записывая моно вместо стерео (по ffprobe в примере стерео звук):
Code:
record_audio_codec_channels=1
Кроме того, можно ограничить битрейт записи. По умолчанию выбран режим переменного битрейта с наиболее высоким лимитом
Code:
record_fdk_aac_bitrate_mode=5
Вы можете варьировать это значение от 1 (минимальный битрейт, ниже качество, меньше размер) до 5 (максимальный битрейт, высокое качество, максимальный размер).
 

Serg

New Member
Запись инициализируется таким кодом:
Code:
constraints = {
        audio: true,
        stereo: false,
        bitrate: 64000
        video: false
    };
    session.createStream({
        name: streamName,
        display: localVideo,
        record: true,
        constraints: constraints,
        receiveVideo: false,
        receiveAudio: false
    }).on(STREAM_STATUS.PUBLISHING, function (stream) {
    }).on(STREAM_STATUS.UNPUBLISHED, function (stream) {
    }).on(STREAM_STATUS.FAILED, function (stream) {
    }).publish();

В результате в записи размер аудиопотока всего - Stream size: 81.7 KiB (4%), а File size: 2.08 MiB!!! Возможно ли как-нибудь уменьшить размер файла, но не за счет уменьшения Stream size (качества ауодипотока) ?

General
Complete name : /home/serg/Загрузки/23-27939-695.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/iso2/avc1/mp41)
File size : 2.08 MiB
Duration : 5 s 201 ms
Overall bit rate mode : Variable
Overall bit rate : 3 354 kb/s
Encoded date : UTC 2021-09-24 09:23:07
Tagged date : UTC 2021-09-24 09:23:07

Audio
ID : 1
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Codec ID : mp4a-40-2
Duration : 5 s 201 ms
Bit rate mode : Variable
Bit rate : 128 kb/s
Nominal bit rate : 74.4 kb/s
Channel(s) : 1 channel
Channel layout : C
Sampling rate : 44.1 kHz
Frame rate : 43.066 FPS (1024 SPF)
Compression mode : Lossy
Stream size : 81.7 KiB (4%)
Language : English
Encoded date : UTC 2021-09-24 09:23:07
Tagged date : UTC 2021-09-24 09:23:07
 

Max

Administrator
Staff member
В результате в записи размер аудиопотока всего - Stream size: 81.7 KiB (4%), а File size: 2.08 MiB!!! Возможно ли как-нибудь уменьшить размер файла, но не за счет уменьшения Stream size (качества ауодипотока) ?
По умолчанию, в начале файла резервируется место под moov атом, чтобы этот файл можно было затем играть с S3-совместимого хранилища. Размер, который резервируется, составляет 2 Мб (настройка в килобайтах)
Code:
mp4_container_moov_reserved_space_size=2048
Вы можете уменьшить этот размер, либо вообще отключить резервирование:
Code:
mp4_container_moov_first_reserve_space=false
 
Top