Как объединить (объединить) два транспортных потока с двумя разными разрешениями и форматом срезов I-кадра без потери разрешения и информации срезов - PullRequest
0 голосов
/ 02 октября 2019

Я пытался протестировать вариант использования с паром, захваченным с мультимедийного устройства, и это не сработало. И затем я пытался создать этот конкретный транспортный поток в течение двух дней безуспешно, поэтому запрашиваю некоторую помощь.

Мне нужно создать транспортный поток с двумя разными разрешениями и двумя разными форматами срезов.

Я разделил задачу на следующие шаги, и на последних двух шагах мне нужна помощь.

Шаг 1 : Загрузить пример видео с разрешением: 1920x1080.
Я скачал Big Buck Bunny mp4 .

Шаг 2 : Создать транспортный поток со следующим
разрешением: 1920x720, H264 I срезов кадра на кадр: 1
Я использовал следующее ffmpegкоманды для этого.

#Rename file to input.mp4
$ mv bbb_sunflower_1080p_30fps_normal.mp4 input.mp4
#Extract transport stream
$ ffmpeg -i input.mp4 -c copy first.ts

first.ts имеет разрешение 1980x720 и один срез H264 I на кадр.

Шаг 3 : создайте другой транспортный поток с меньшим размеромразрешение с помощью следующих команд

#Get mp4 with lower resolution.
$ ffmpeg -i input.mp4 -s 640x480 temp.mp4
#Extract trans port stream from mp4
$ ffmpeg -i temp.mp4 -c copy low_r.ts

Шаг 4 : отредактируйте (и перекодируйте?) low_r.ts, чтобы получить два среза кадра I H264. Для этого я использовал следующую команду:

$ x264 --slices 4 low_r.ts -o second.ts

Однако, когда я играю этот second.ts на vlc, используя следующую команду, он не воспроизводит

$ vlc ./second.ts 

И при использовании программного обеспечения Elacard StreamEye, когдаЯ анализирую транспортный поток и вижу, что он имеет 4 H264 I slices всего в два раза больше, чем этот лот H264 p slices и H264 B slices. Здесь нужна помощь, чтобы выяснить, почему second.ts не воспроизводится и почему срезы некорректны.

Шаг 5 : объединение обоих транспортных потоков без потери разрешенияи нарезка информации. Не знаю команды для этого. Нужна помощь здесь. Я пробовал ffmpeg, но он объединяет два потока с разным разрешением и создает один файл с одним разрешением.

Любые предложения / указатели помогут мне продолжить. Дайте мне также знать, если какой-либо из вышеперечисленных шагов тоже не подходит.

...