![ffmpeg увеличивает длину видеосегментов при использовании с -segment_time — как исправить?](https://rvso.com/image/1490221/ffmpeg%20%D1%83%D0%B2%D0%B5%D0%BB%D0%B8%D1%87%D0%B8%D0%B2%D0%B0%D0%B5%D1%82%20%D0%B4%D0%BB%D0%B8%D0%BD%D1%83%20%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D1%81%D0%B5%D0%B3%D0%BC%D0%B5%D0%BD%D1%82%D0%BE%D0%B2%20%D0%BF%D1%80%D0%B8%20%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B8%20%D1%81%20-segment_time%20%E2%80%94%20%D0%BA%D0%B0%D0%BA%20%D0%B8%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%3F.png)
Я пытаюсь записать rtmp-поток в файл, разделяя его каждые 10 секунд.
Моя команда ffmpeg:
ffmpeg -i rtmp://192.168.16.82:1935 -f segment -strftime 1 -segment_time 10 -segment_format avi E:\record\CAM1_%Y-%m-%d_%H-%M-%S.avi
Это работает, но созданные файлы каким-то образом повреждаются. Первый файл в порядке, длина 10 секунд; длина второго файла 20 секунд, и первые 10 секунд — это статичное изображение; третий файл 30 секунд, и первые 20 секунд — это ничего, кроме статичное изображение, и так далее.
Что я делаю не так?
решение1
AVI не работает с PTS, поэтому вам придется сбросить временные метки:
ffmpeg -i rtmp://192.168.16.82:1935 -f segment -strftime 1 -reset_timestamps 1 -segment_time 10 -segment_format avi E:\record\CAM1_%Y-%m-%d_%H-%M-%S.avi