Объединить сегменты MPEG-DASH (например, init.mp4 + segments.m4s) обратно в полный исходный файл.mp4?

GPAC, http://gpac.wp.mines-telecom.fr/, можно использовать выполнять сегментацию видео вместе со спецификацией MPEG-DASH. Один тип результатов представляет собой комбинацию файлов инициализации (например, init.mp4) и нескольких сегментов приблизительно фиксированной продолжительности (например, сегмент-%d.m4s). Что, если я только что получил эти результаты, и мне нужно обратить/объединить их обратно в один полный файл source.mp4? Могу ли я использовать для этого GPAC или ffmpeg?


person Drake Guan    schedule 06.05.2014    source источник
comment
Загрузчик KSV HDS похож, я бы спросил у него stream-recorder.com/ форум/adobe-hds-downloader-t14823.html   -  person Steven Penny    schedule 06.05.2014
comment
@StevenPenny Вы имеете в виду, что фрагменты HDS аналогичны фрагментам, определенным в DASH-AVC/264 ?!   -  person Drake Guan    schedule 06.05.2014
comment
Концепция похожа. Кроме этого я не знаю.   -  person Steven Penny    schedule 06.05.2014
comment
может кто-нибудь ответить на этот вопрос? stackoverflow.com/questions/55701262/   -  person Liquid    schedule 19.04.2019


Ответы (3)


Вы можете просто использовать команду cat или аналогичные инструменты для выполнения этой работы:

cat init.mp4 > source.mp4
cat segment-1.m4s >> source.mp4
cat segment-2.m4s >> source.mp4
...

Чтобы сделать это автоматически для всех сегментов в текущей папке, можно использовать следующую команду:

cat init.mp4 $(ls -vx segment-*.m4s) > source.mp4

Параметр -v для ls сортирует вывод естественным образом (т. е. 1, 2, ..., 10, ..., 100), в противном случае он сортируется лексически (т. е. 1, 10, 100, 2, ...). Параметр -x помещает вывод в строку вместо столбцов.

person Daniel    schedule 19.11.2014
comment
Однако объединенный файл не будет таким же, как исходный файл. - person Drake Guan; 19.11.2014
comment
Не могли бы вы также объяснить, как это сделать в Windows? Я пробовал ввести команду, но это не сработало. введите segment-1.m4s segment-2.m4s › final.mp4 эта команда выполнена успешно, она также создала файл mp4, но когда я ее запускаю, она не запускается, говоря, что файл поврежден или не поддерживается. - person Rupesh Kumar Tiwari; 02.03.2016
comment
Я также обнаружил, что cat реализация Windows работает не так, как ожидалось. В итоге я использовал машину с Linux или версию cat, предоставленную Cygwin (cygwin.com) - person Daniel; 03.03.2016
comment
@DrakeGuan объединенный файл не будет совпадать с исходным файлом Почему? - person 3dGrabber; 15.04.2019
comment
@3dGrabber, вау, это вопрос пятилетней давности! Я бы сказал, что Даниэль подходит для конкатенации: 1) это играбельно; 2) он может быть похож на файл mp4 (до того, как он будет упакован/сегментирован). - person Drake Guan; 18.04.2019

В командной оболочке Windows вы можете использовать команду копирования для объединения файлов следующим образом:

copy init.mp4 +segment*.m4s source.mp4

«Помощь в копировании» предоставляет вам все варианты

person Ralf Bialozyt    schedule 20.10.2016
comment
У меня так не заработало, пришлось включить бинарный режим для копирования: copy /B ... - person user136036; 27.12.2017

Я использую менее технический способ, который переименовывает аудио- и видеосегмент в .mp4 и .ogg в командной строке, а затем объединяет их в программном обеспечении для редактирования видео, а не экспортирует в формате .mp4. Хотя этот способ менее технический, но он прост для новичков в информационных технологиях.

person CA9526    schedule 11.06.2020