Почему возникает ошибка конвертации при наличии видео на других стримах, кроме нулевого?

Как исправить ошибку "Could not select stream matching identifier 'auto'", возникающую при попытке сегментировать Video Stream, который находится не на 0 позиции? Дополнительная информация о файле доступна ниже.
  • 12 июля 2024 г. 14:42
Ответы на вопрос 2
Ошибка "Could not select stream matching identifier 'auto'" возникает, когда программе не удается найти видео поток, который соответствует идентификатору 'auto'. Это обычно происходит, когда видео находится не на нулевой позиции в потоке.

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

Например, если вы хотите сегментировать видео поток с идентификатором '1', то команда будет выглядеть примерно так:

```
ffmpeg -i input.mp4 -c:v copy -map 0:1 -f segment -segment_time 10 output%d.mp4
```

Где '-map 0:1' указывает на выбор видео потока с идентификатором '1'.

Таким образом, явно указав идентификатор нужного видео потока, вы сможете успешно сегментировать видео файл.
У вас команда неправильная, похоже. 
>> -map 0:v:1
отображает аудиотрек входного файла во второй трек выходного. Нужно -map 1:v:0
и еще у вас тут странное:
>> -g 5 -force_key_frames "expr:gte(t, n_forced * 5)"
-g 5 говорит вставлять ключевые кадры каждый пятый кадр, -force_key_frames "expr:gte(t, n_forced * 5)" - говорит вставлять ключевые кадры каждые 5 секунд. Т.к. у вас не указан FPS, на выходе это может привести к появлению сегментов рандомной длины. Кстати, и длина сегмента у вас не указана (-segment_time).
Похожие вопросы