Инструкции, Софт, рекомендации

Здесь обмениваемся советами относительно разного применяемого в нашем деле софта по записям трансляций, обработке видеофайлов.
Рекомендуем программы, делимся опытом использования, разъясняем инструкции, как по софту, так и по другим техническим вопросам по теме форума.












----




КОММЕНТАРИИ

Модератор
Рег: 22.10.2014
Ком-ев: 9 703
Рейтинг: 30776
D-Pulse 9 сентября 2023 18:42 #92077
Цитата: Gemini0701
Если срисовыввать стандартными прогами типа bandicam, то режется битрейт до 240

похоже это у тебя какая то проблема или с компом или с софтом
сейчас кроме "экранки" не чем записать приват с бонги, вернее я не знаю других вариантов.
пользую ломаную Icecream Screen Recorder 6.26 pro
  • 0

Любитель
Рег: 3.07.2017
Ком-ев: 95
Рейтинг: 342
Gemini0701 9 сентября 2023 05:35 #92072
Ребят, а как записать приват с Бонги? Если срисовыввать стандартными прогами типа bandicam, то режется битрейт до 240, одни квадратики
  • 0

Любитель
Рег: 22.09.2021
Ком-ев: 96
Рейтинг: 87
sam 7 сентября 2023 19:31 #92066
@crazyborder,
у меня AkelPad с регулярками
можно просто искать ftypcmfc в winhex
  • 1

Редактор
Рег: 15.03.2017
Ком-ев: 827
Рейтинг: 2420
crazyborder 7 сентября 2023 19:15 #92065
@sam
Каким редактором пользовался для поиска паттерна?
  • 0

Любитель
Рег: 22.09.2021
Ком-ев: 96
Рейтинг: 87
sam 7 сентября 2023 19:02 #92064
@crazyborder,
обычной split функцией это делается по паттерну "\x00\x00\x00\x20ftypcmfc", потом массив выводится в отдельные файлы, добавляя в начало паттерн
но это не сработает на больших файлах, памяти может не хватить
для большого размера надо сначала найти позиции паттерна в файле - с этим как раз проблема, по одному байту считывать долго, блоками - можно пропустить, в общем, пока нет решения, хоть и задача интересная
  • 0

Редактор
Рег: 15.03.2017
Ком-ев: 827
Рейтинг: 2420
crazyborder 7 сентября 2023 18:36 #92063
Цитата: Prohozhij
Можешь подсказать каким образом порезал на 77 кусков?

Вопрос не ко мне.
@sam
Да, мне тоже интересно, расскажи, пожалуйста, поподробнее, как это делается.
  • 0

Любитель
Рег: 22.09.2021
Ком-ев: 96
Рейтинг: 87
sam 7 сентября 2023 15:17 #92062
@Prohozhij,
test.ts - это не mpeg-ts а mp4 и похоже что еще и фрагментированный (fmp4, moof)
у TS заголовок другой: "G@ " или \x47\x40\x00
а у тебя "ftyp" - как в mp4 и отсутствует звук
  • 0

Местный
Рег: 30.08.2017
Ком-ев: 397
Рейтинг: 988
Prohozhij 7 сентября 2023 09:35 #92060
Цитата: crazyborder, 07.09.2023 02:58, №92058
ffmpeg не смог по сути склеить эти 77 кусочков. Короче, я их сначала скопом перемуксил в mp4, затем склеил

Можешь подсказать каким образом порезал на 77 кусков?
  • 0

Редактор
Рег: 15.03.2017
Ком-ев: 827
Рейтинг: 2420
crazyborder 7 сентября 2023 02:58 #92058
@sam, @Prohozhij
ffmpeg не смог по сути склеить эти 77 кусочков, поэтому и получилась такая шняга.
Пакет поврежден... При обработке входных данных обнаружены недопустимые данные

Короче, я их сначала скопом перемуксил в mp4, затем склеил в SolveigMM Video Splitter (ts он не берет)
Вот результат:
File size: 177 MB
Duration: 1 min 37 s
https://pixeldrain.com/u/pfDoHQZJ
  • 0

Любитель
Рег: 22.09.2021
Ком-ев: 96
Рейтинг: 87
sam 7 сентября 2023 01:42 #92055
@Prohozhij,

разделил файл на сегменты
в плеере - в каждом сегменте отображает неправильное время 16,17 минут, а в mediainfo 2s
воспроизводятся по 0,5 - 2 сек примерно
ffmpeg собирает в файл 9 MB и 32 мин - результат https://pixeldrain.com/u/vW2RQwoj
  • 0

Редактор
Рег: 15.03.2017
Ком-ев: 827
Рейтинг: 2420
crazyborder 7 сентября 2023 01:19 #92054
@Prohozhij
Можете написать подробней как писать ffmpeg'ом? Хотя... плагины все для streamlink, так что вряд ли что автоматизированное получится.

Там нет никакой проблемы в твоем батнике заменить команду:
streamlink --stream-segment-threads 3 %1 %quality% -o "%dir%\%file%"

на
ffmpeg -hide_banner -i %1 -c copy "%dir%\%file%"

Будешь по-прежнему получать ссылки на поток из стримлинковских плагинов и скармливать на этот раз ффмпегу.

Но походу тебе это не поможет - такую же рванину будешь писать. Хотя... Может, получишь огромную кучу мелких файлов на одну трансляцию...
Что-то у тебя с компом, инетом не совсем айс..
*****
Для теста можешь даже так попробовать заменить:
ffplay -hide_banner %1

*****
Насчет "Download of segment xxxxx failed..."
Такое бывает, ну и что? Чем хуже качество трансляции, тем чаще такое может появиться. Да только обычно стримлинк, если ему так и не удается зацепить тот или иной сегмент, просто пишет дальше.
Если звук, соответствующий потерянному сегменту, записался, то при просмотре таких сбойных участков будет обычный фриз, замирание, стоп-кадр - чтобы дальше не нарушилась синхронизация с аудио.
Если и звук и видео для данного сегмента не захватились, то при воспроизведении будет просто скачок, резкая смена картинки.
По факту такие записи без проблем ремуксятся из ts в mp4 - что записалось, то и покажет.
  • 0

Местный
Рег: 30.08.2017
Ком-ев: 397
Рейтинг: 988
Prohozhij 7 сентября 2023 01:12 #92053
Цитата: oldcat17
А вот это похоже на отказ диска, вернее на его не способность в запись потока с таким битрейтом

Сомнительно что на SSD не может записать файл с битрейдом 10 мегабит, да и визуально я один раз видел, что при довольно продолжительном зависании трансляции, в батнике выскакивает эта ошибка.

починить твой файл можно untrunk

Пробовал прогнать этот файл untrunc-gui, вылетает.
  • 0

Любитель
Рег: 2.04.2021
Ком-ев: 37
Рейтинг: 110
oldcat17 7 сентября 2023 00:30 #92052
Цитата: Prohozhij, 22.08.2023 10:10, №91994
[mov,mp4,m4a,3gp,3g2,mj2 @ 00000148d57be380] Found duplicated MOOV Atom. Skipped it
Last message repeated 65 times

В твоем файле нет мувов "заголовков" их скипает
так как сайт судя по всему шлет чанки без них то есть прерывание на твоей стороне - плохие интернеты или малый размер буфера
попробовать увеличить кэш каким нибудь образом
есть ещё одна мысль - твой провайдер\роутер режет мту(размер пакета) у пакетов но это из серии мистики

починить твой файл можно untrunk

Цитата: Prohozhij, 06.09.2023 22:56, №92050
Download of segment 9945 failed (('Connection broken: IncompleteRead(2129051 bytes read, 419736 more expected)', IncompleteRead(2129051 bytes read, 419736 more expected)))

А вот это похоже на отказ диска, вернее на его не способность в запись потока с таким битрейтом, используй свап
  • 0

Любитель
Рег: 22.09.2021
Ком-ев: 96
Рейтинг: 87
sam 6 сентября 2023 23:25 #92051
Цитата: Prohozhij, 06.09.2023 22:56, №92050
необходима какая то пакетная обработка

я еще пока не знаю как такую задачу решить ) это не разделять файл по байтам, условие более сложное, надо спросить у чатжпт, может идею подкинет)
для начала надо посмотреть что там за сегменты, может в процессе выявится кривизна и появится направление для дальнейшего решения

как писать ffmpeg'ом?

там (cam4 и проч.) одним ffmpeg не обойтись, нужно еще получить ссылки на стрим (curl, PS, любой ЯП)
а в streamlink уже есть плагины для этого
ну и потом, ffmpeg (в целом) - не очень подходит для записи онлайн трансляций:
1. проблема c CRLF (для передачи http-заголовков) при запуске через bat
2. может зависнуть при чтении playlist (на некоторых сайтах) - тогда нужно писать костыль, что-бы прибивал конкретный процесс ffmpeg - но это было достаточно давно, может уже и нет этого бага
  • 0

Местный
Рег: 30.08.2017
Ком-ев: 397
Рейтинг: 988
Prohozhij 6 сентября 2023 22:56 #92050
Цитата: sam, 06.09.2023 22:04, №92049
можно попробовать развалить файл на сегменты

Такие файлы с cam4 и myfreecams довольно часто пишутся, записи пачкой исправляются батником и исходники удаляются. Поэтому необходима какая то пакетная обработка.

я пишу ffmpeg'ом - он в процессе записи трансляции, "на лету", исправляет тайминги

Можете написать подробней как писать ffmpeg'ом? Хотя... плагины все для streamlink, так что вряд ли что автоматизированное получится.
Еще вариант.
Можно ли научить батник при появлении ошибки:
Download of segment 9945 failed (('Connection broken: IncompleteRead(2129051 bytes read, 419736 more expected)', IncompleteRead(2129051 bytes read, 419736 more expected)))

Заканчивать запись файла и начинать писать новый файл не запрашивая по новой адрес трансляции, а писать по предыдущему адресу?
  • 0

Любитель
Рег: 22.09.2021
Ком-ев: 96
Рейтинг: 87
sam 6 сентября 2023 22:04 #92049
Цитата: Prohozhij, 06.09.2023 11:09, №92046
Записал тестовый файл.

можно попробовать развалить файл на сегменты, а затем уже через concat в ffmpeg собрать
я пишу ffmpeg'ом - он в процессе записи трансляции, "на лету", исправляет тайминги, а streamlink.exe похоже что просто конкатенирует в файл все сегменты
  • 0

Местный
Рег: 30.08.2017
Ком-ев: 397
Рейтинг: 988
Prohozhij 6 сентября 2023 11:09 #92046
Записал тестовый файл. У модели в начале трансляции связь была так себе, регулярно в батнике появлялась подобная ошибка:
Download of segment 9945 failed (('Connection broken: IncompleteRead(2129051 bytes read, 419736 more expected)', IncompleteRead(2129051 bytes read, 419736 more expected)))

Этот файл полностью перегнать в mp4 не получается.
P.S.
Еще вопрос, на cam4 у некоторых моделей трансляции подвисают.
Возьмем например модель engelcantrell
Через батник на сейчас адрес ее трансляции:
https://cam4-hls.xcdnpro.com/282/cam4-origin-live/EngelCantrell-282-883bec32-3b59-4765-a76f-808fee1212e0_aac/playlist.m3u8
При этом есть еще адрес:
https://cam4-hls.xcdnpro.com/282/cam4-origin-live/EngelCantrell-282-883bec32-3b59-4765-a76f-808fee1212e0_aac/chunklist.m3u8
И в данный момент, у меня, по второму адресу трансляция зависает поменьше.
Есть ли возможность исправить плагин cam4 так что бы можно было вводить не только ник модели но и оконцовку адреса трансляции?
Пишу такими батниками сразу нескольких моделей:

Запускается таким
  • 0