Почему после конвертации с помощью ffmpeg появляется дополнительный бинарный поток в метаданных файла?

Как избавиться от дополнительного бинарного потока в видеофайле после конвертации из-за выбора только двух основных потоков с помощью ffmpeg? В коде указан метод `run_ffmpeg`, который запускает команду ffmpeg для конвертации файлов в формат mp4, и метод `convert_files`, который обрабатывает видеофайлы.
  • 20 июня 2024 г. 2:01
Ответы на вопрос 1
При конвертации видео файлов с помощью ffmpeg могут появляться дополнительные бинарные потоки в метаданных из-за того, что ffmpeg сохраняет различные типы данных, такие как аудио потоки, видео потоки, субтитры, метаданные и т.д. Если вы хотите избавиться от дополнительного бинарного потока и оставить только два основных потока (например, аудио и видео), то вам нужно указать в команде ffmpeg параметры для выбора только нужных потоков.

Пример команды ffmpeg для конвертации видео файла с выбором только двух основных потоков (аудио и видео):
```
ffmpeg -i input.avi -map 0:v -map 0:a -c:v copy -c:a copy output.mp4
```

В данной команде параметр `-map` указывает на выбор потока по индексу, `0:v` - выбор потока видео, `0:a` - выбор потока аудио. Параметры `-c:v copy` и `-c:a copy` указывают на то, что данные потоки нужно скопировать без изменений.

В вашем коде, метод `run_ffmpeg` должен вызываться с подобной командой ffmpeg для конвертации файлов, и вам нужно убедиться, что выбраны только нужные потоки для сохранения в конечном видео файле.

Пример функции `run_ffmpeg`:
```python
import subprocess

def run_ffmpeg(input_file, output_file):
    command = f'ffmpeg -i {input_file} -map 0:v -map 0:a -c:v copy -c:a copy {output_file}'
    subprocess.call(command, shell=True)

def convert_files(files):
    for file in files:
        run_ffmpeg(file, file.replace('.avi', '.mp4'))
```

Таким образом, при использовании подобной команды ffmpeg и указании только нужных потоков, вы сможете избавиться от дополнительного бинарного потока в видео файле после конвертации.
Похожие вопросы