Я пытаюсь загрузить видео с альтернативной версии сайта Ustream. Этот сайт, по-видимому, используется для защиты DRM, ведь вы не можете смотреть это видео без доступа к нему через логин с этого сайта. Видеосистема должна быть такой же, как и в ustream (те же самые ссылки), которая каждые шесть секунд вызывает различные фрагменты flv и объединяет их в поток (аналогично службе rtmp, но не использует этот протокол).Слияние .flv фрагментов с сайта потока
Мне удалось загрузить каждый фрагмент .flv, составляющий это видео, но у меня возникли проблемы с их объединением в один файл. Прежде всего эти файлы flvs имеют некоторые аудио/видео задержки/проблемы, но поскольку нет другого способа скачать это видео, я не жалуюсь на лага.
Настоящая проблема заключается в том, что каждый файл flv имеет добавочный прирост продолжительности, несмотря на нормальный размер. Продолжительность видео составляет около 6 секунд, поэтому первый фрагмент длится 6 секунд, второй кусок - 12 секунд, хотя видны только первые 6 (остальные 6 «повреждены»). Если я попытаюсь объединить (с ffmpeg или любым программным обеспечением для присоединения к видео), все эти файлы (около 600-700, на общую продолжительность 1 час и 15 минут) будут видны только первые два раздела, тогда я ничего не вижу. (Яснее, если я попытаюсь объединить первые 2 куска, файл длится 18 секунд, и я могу увидеть первые 12, если я попытаюсь объединить первые 3 куска, файл длится 36 секунд, и я все еще могу видеть только первые 12 секунд.)
У кого-нибудь есть идеи?
Stack Overflow предназначен для программирования вопросов, поэтому вы должны показать свой код. – LordNeckbeard
Ну, я не знаю, прочитал ли вы вопрос, но нет кода для показа. То, что я попросил, было методом объединить flv-фрагменты в подобной/идентичной среде (где каждый следующий фрагмент приносит длительность предыдущих). Команда объединения является стандартной. Моя проблема заключается в получении реальной продолжительности кусков. Я думал что-то об обрезке каждого .flv-файла, но есть 700 файлов, и мне приходится обрезать один час минус 6 секунд в последних. – Iztooi
@Iztooi хотя бы покажет нам команду ffmpeg "merge". Может быть, это неправильно, например, как вы сливаете только 2 или 3 flv? Получил ссылку на два примера последовательных кусков? Необходимо проверить, есть ли у каждого блока отдельный собственный заголовок FLV и как выглядят эти временные метки. В принципе, если chunk-1 заканчивается на отметке времени 6 секунд, тогда chunk-2 не может иметь первый кадр с отметкой времени 0. В таком случае вам нужно удалить заголовок flv chunk-2 и отредактировать метку времени в каждом кадре, чтобы увеличить ее с 6 секунд вверх. Использует ли ваш язык кодирования обработку байтов? Или попробуйте команду ffmpeg 'genpts'? –