Ffmpeg конвертирует m4s в mp4

Я работаю над DASH, пытаясь оптимизировать QoE для конечного пользователя.

У меня было видео, и я закодировал его с помощью ffmpeg в разные битрейты, и все в порядке, и видео можно воспроизводить с помощью тире.

Я хочу объединить полученные от пользователей сегменты в один m4 и преобразовать его в mp4.

Я пробовал много способов в ffmpeg, но всегда выдает такую ​​ошибку:

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x9a9e500] could not find corresponding track id 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x9a9e500] could not find corresponding trex
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x9a9e500] error reading header
test2.m4s: Invalid data found when processing input

сегмент_1.m4s есть.

Как я могу решить эту проблему?

В начале файла отсутствует фрагмент инициализации.

szatmary 08.10.2018 22:38

@szatmary Я закодировал видео сам, и 38 сегментов - это все, что у меня есть. они все объединены в тот файл m4s, где должен быть сегмент инициализации?

programming freak 09.10.2018 11:51
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
4
2
18 363
2

Ответы 2

Это работает

Объедините сегменты m4s в один файл, убедившись, что порядок файлов правильный. Например.

cat video-0.m4s >> all.m4s
cat video-1.m4s >> all.m4s
cat video-2.m4s >> all.m4s
cat video-3.m4s >> all.m4s
cat video-4.m4s >> all.m4s
cat video-5.m4s >> all.m4s
cat video-6.m4s >> all.m4s
cat video-7.m4s >> all.m4s
cat video-8.m4s >> all.m4s
cat video-9.m4s >> all.m4s
cat video-10.m4s >> all.m4s

А затем сделайте все свои преобразования сразу.

ffmpeg -i all.m4s -c copy video.mp4

Это не

У меня такая же проблема (could not find corresponding trex) при использовании метода потоковой передачи.

У меня были все файлы, которые я хотел, в файле all.txt, который содержал

file 'video-0.m4s'
file 'video-1.m4s'
file 'video-2.m4s'
file 'video-3.m4s'
file 'video-4.m4s'
file 'video-5.m4s'
file 'video-6.m4s'
file 'video-7.m4s'
file 'video-8.m4s'
file 'video-9.m4s'
file 'video-10.m4s'

И я попробовал ffmpeg -f concat -safe 0 -i all.txt -c copy video.mp4, в результате возникла та же проблема.

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55fde2d0c520] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 1280x720): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55fde2d0c520] Auto-inserting h264_mp4toannexb bitstream filter
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55fde2d0c520] could not find corresponding track id 1
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55fde2d0c520] could not find corresponding trex
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x55fde2d0c520] error reading header
[concat @ 0x55fde2cff900] Impossible to open 'rifle-1.m4s'
[concat @ 0x55fde2cff900] Could not find codec parameters for stream 0 (Video: h264 (avc1 / 0x31637661), none, 1280x720): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, concat, from 'all.txt':
[... omitted ...]
all.txt: Input/output error

Да, такая же проблема, все файлы находятся в одном месте, но все равно выдает ошибку

programming freak 31.01.2020 13:35

Как насчет сегмента инициализации? что нужно сделать для сегмента инициализации?

user8783065 24.03.2020 10:15

@ user8783065 вы объединяете файлы m4s после сегмента инициализации, я делаю for x in *.dash *.m4s; do cat $x >> output.mp4; done, где сегмент инициализации является файлом .dash

Louis Maddox 16.02.2021 12:08

Первый файл, который будет объединен с сегментом инициализации, за которым следует другой файл сегмента.

Windows PowerShell:

Сортировать и перечислять видео файлы

 Get-ChildItem -name v1*.m4s| Sort-Object { [regex]::Replace($_, '\d+', { $args[0].Value.PadLeft(20) }) } > list.txt

Аудио файлы

 Get-ChildItem -name a1*.m4s| Sort-Object { [regex]::Replace($_, '\d+', { $args[0].Value.PadLeft(20) }) } > list.txt

(см .: Как сортировать файлы по имени так же, как это делает проводник Windows?)

 type *init*.mp4 list.txt > Filename.mp4

Linux:

 ls -1v v1*.m4s > list.txt
 cat *init*.mp4 list.txt > Filename.mp4

Пожалуйста, проверьте, присутствуют ли все ваши данные init.mp4 - sps, pps и т. д.

mail2subhajit 04.02.2020 14:18

Другие вопросы по теме