Как сегментировать видеофайл (используя FFMPEG) в «закодированную» версию (то есть .mp4 загружается с одного из наших серверов CDN), в которой каждый чанк должен быть 4 МБ? - PullRequest
0 голосов
/ 13 января 2019

Я использую FFMPEG инструмент командной строки / терминала. У меня есть видео в формате .mp4. Я хорошо разбираюсь в сегментации видео с точки зрения длины / продолжительности, однако я хочу сегментировать фрагменты «кодированной / транскодированной» версии видео (которую я скачал с нашего CDN in.mp4 ) до 4 МБ (4000000 байт) , за исключением последнего, размер которого может варьироваться (т. Е. Для полного кодирования / декодирования видео). Если у меня возникнут проблемы с объяснением того, что я ищу, просто знайте, что я не заинтересован в сегментации видео с точки зрения длительности / продолжительности, поскольку это не имеет значения для меня.

Чтобы объяснить сценарий: у меня есть две копии того же видео. Один «оригинальный», а второй - тот, который я скачал с сервера / CDN. Второе видео оказывается повреждено (несмотря на то, что видео успешно загружено и имеет ту же продолжительность / длительность); он прекращает воспроизведение около 1: 12 минут , даже несмотря на то, что искатель / ползунок продолжает прогрессировать до тех пор, пока * 1: 45 минут , где видео и аудио снова начинают работать.

Я выполнил двоичное сравнение (используя "fc" в CMD) этих двух видео, и они совсем не совпадают.

В двух словах: я думаю, что мне нужно «закодировать» поврежденное видео .mp4, а затем сегментировать закодированные данные в несколько версий по 4 МБ. Я не знаю, как я могу сделать это из FFMPEG.

Если что-то не понятно, задавайте столько вопросов, сколько хотите.

Спасибо за чтение!

Редактировать: Кажется, что работает следующее, но не все куски эквивалентны 4 МБ. Что-то я делаю не так? ffmpeg -i "original.mp4" -b:v 1000000 -g 60 -hls_time 2 -hls _list_size 0 -hls_segment_size 4000000 output.m3u8

...