Вопрос или проблема
Ситуация: Я закодировал файл h.264 input_original.mkv в h.265 output_hevc.mkv
После долгого процесса кодирования я понял, что выбраны неправильные аудиопотоки.
Мне нужно получить новый output_hevc_2.mkv, который будет основан на копии видеопотока из output_hevc.mkv и сопоставленных аудиопотоках из input_original.mkv
Это технически возможно?
П.с. Я видел эту ссылку ffmpeg-adding-re-encoding-audio-stream-on-video-file
Это не тот же вопрос, потому что он создаст новый выходной файл с видеопотоком из input_original.mkv.
В случае, если вам нужно указать аудио/видео/субтитры потоки
ffmpeg -hide_banner \
-i "input_0.mkv" \
-i "input_1.mkv" \
-map 0:v:0 \
-map 1:a:0 \
-map 1:a:4 \
-map 0:s:0 \
-map 0:s:2 \
-c copy \
"result_output.mkv"
Это объединит видеопоток из input_0.mkv и выбранные аудиопотоки и субтитры из input_1.mkv в result_output.mkv
Ответ или решение
Для выполнения задачи объединения видеопотока из одного файла и аудиопотоков из другого файла, можно использовать утилиту ffmpeg
, которая является мощным инструментом для обработки мультимедийных файлов. Рассмотрим изучение данной задачи детально.
Шаги:
-
Подготовка к процессу:
Убедитесь, что у вас установлена последняя версияffmpeg
. Это важно, так как каждая новая версия включает улучшения и новые функции, которые могут быть полезными в вашей работе. -
Изучение файлов:
Начнем с изучения потоков, доступных в ваших исходных файлах. Для этого воспользуйтесь командой:ffmpeg -i input_original.mkv ffmpeg -i output_hevc.mkv
Это позволит вам увидеть, какие именно аудиопотоки и видеопотоки содержатся в каждом файле. Обратите внимание на их номера и форматы.
-
Составление команды
ffmpeg
:
Ваша задача заключается в том, чтобы скопировать видеопоток из файлаoutput_hevc.mkv
и аудиопотоки из файлаinput_original.mkv
. Структура команды будет выглядеть следующим образом:ffmpeg -hide_banner \ -i "output_hevc.mkv" \ -i "input_original.mkv" \ -map 0:v:0 \ # Копируем первый видеопоток из output_hevc.mkv -map 1:a:0 \ # Копируем первый аудиопоток из input_original.mkv -map 1:a:1 \ # Вы можете добавить любые дополнительные аудиопотоки, например второй аудиопоток -c copy \ "output_hevc_2.mkv"
В данной команде:
-map 0:v:0
указывает на видео из первого входного файла (в данном случае этоoutput_hevc.mkv
).-map 1:a:0
и-map 1:a:1
указывают на аудиопотоки из второго входного файла (input_original.mkv
). В вашем случае, вы можете настроить количество аудиопотоков на основе вашего анализа.
-
Запуск команды и итог:
После составления команды, просто запустите её в терминале.ffmpeg
объединит заданные потоки и создаст новый файлoutput_hevc_2.mkv
, содержащий правильный видеопоток и аудиопотоки. -
Проверка результата:
После завершения работыffmpeg
, рекомендуется проверить новый файл на наличие необходимых потоков. Для этого снова используйте командуffmpeg -i
для анализаoutput_hevc_2.mkv
.
Заключение:
Используя ffmpeg
, вы можете легко и эффективно объединять видеопотоки и аудиопотоки из разных файлов. Тщательный анализ доступных потоков и правильное использование параметров -map
позволит вам получить именно тот результат, который вы ожидаете. Если у вас есть дополнительные сложности, более специфические команды ffmpeg
могут помочь вам решить узкие задачи.
Прибудьте на LinkedIn или других платформах для обсуждения мультимедийной обработки, чтобы получать дополнительные советы и рекомендации по работе с аудио и видео файлами.