Добавить в корзинуПозвонить
Найти в Дзене
Arkof

Как убрать лишние потоки из видео?

Столкнулся я с такой проблемой когда решил собрать в Adobe Premiere Pro видеоролик из кусочков видео по 3 минуты снятых на видеорегистратор iBOX RoadScan 4K WiFi.
Этот видеорегистратор пишет в один файл mp4 сразу 2 видеопотока, 1 поток аудио и еще 3 прочих потока:
Video #1
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main@L5@Main
Codec ID : hvc1
Codec ID/Info : High Efficiency Video Coding
Duration : 3 min 0 s
Bit rate : 16.0 Mb/s
Width : 3 840 pixels
Height : 2 160 pixels
Display aspect ratio : 16:9
Frame rate mode : Variable
Frame rate : 30.000 FPS
Minimum frame rate : 29.960 FPS
Maximum frame rate : 30.030 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth :

Столкнулся я с такой проблемой когда решил собрать в Adobe Premiere Pro видеоролик из кусочков видео по 3 минуты снятых на видеорегистратор iBOX RoadScan 4K WiFi.
Этот видеорегистратор пишет
в один файл mp4 сразу 2 видеопотока, 1 поток аудио и еще 3 прочих потока:
Video #1
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main@L5@Main
Codec ID : hvc1
Codec ID/Info : High Efficiency Video Coding
Duration : 3 min 0 s
Bit rate : 16.0 Mb/s
Width : 3 840 pixels
Height : 2 160 pixels
Display aspect ratio : 16:9
Frame rate mode : Variable
Frame rate : 30.000 FPS
Minimum frame rate : 29.960 FPS
Maximum frame rate : 30.030 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Bits/(Pixel*Frame) : 0.064
Stream size : 344 MiB (90%)
Title : SStar Video
Codec configuration box : hvcC

Video #2
ID : 2
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L3
Format settings : CABAC / 1 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference : 1 frame
Format settings, GOP : M=1, N=15
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 3 min 0 s
Bit rate : 837 kb/s
Width : 640 pixels
Height : 360 pixels
Display aspect ratio : 16:9
Frame rate mode : Variable
Frame rate : 30.000 FPS
Minimum frame rate : 29.960 FPS
Maximum frame rate : 30.030 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.121
Stream size : 18.0 MiB (5%)
Title : SStar Video
Default : No
Codec configuration box : avcC

Видео отлично проигрывается в плеерах VLC, MPC-HC. Проблема возникала когда файлы закидывал в Adobe Premiere Pro на таймлайн, секвенция распознает разрешение 4к, а поток берет через раз то 1, то 2 и получается качество видео 640х360 растянутое на 4к. При этом создается только 2 дорожки - 1 видео и 1 аудио, хотя по логике их должно быть 3.

Я решил эту проблему с помощью FFMPEG и BAT файла создав в нём цикл на удаление всех мусорных потоков, без перекодирования, копируя в отдельную папку.

Для удобства использования FFMPEG я добавил свой путь к файлу в переменную среду Windows - переменная Path

clean.bat файл для удаления мусорных потоков создается самостоятельно и выглядит он так:

@echo on
mkdir out
for %%i in (*.mp4) do (
ffmpeg -i "%%i" -c copy -dn -map_metadata:c -1 "Out\%%i"
)

Его необходимо разместить в той же папке где видеоролики, очищенные ролики попадут в папку Out.

-dn говорит, что нам не нужно копировать поток данных из входящего файла.mp4 в исходящий.mp4. Это необходимо, если у вас есть поток данных в исходном файле. Но даже если в исходном файле нет потока данных, ffmpeg добавляет поток данных в выходной файл, чтобы сохранить информацию о метаданных глав (имена глав). Это позволяет плееру давать название каждой главе.

Если вам это не нужно, ваши главы могут не иметь названия. -map_chapters -1 полностью удаляет главы, так что в видеопотоке вы потеряете все главы. Но если вы просто хотите не включать поток данных, используя -map_metadata:c -1, вы можете сохранить главы и просто потерять их имена. Возможно, это лучшая и менее разрушительная идея.

Скорость выполнения зависит от скорости чтения/записи диска.

Надеюсь, что Вам это поможет!