В чем разница в FFMPEG между использованием -c:v libx264, -c:v copy и -vcodec copy?

В чем разница в FFMPEG между использованием -c:v libx264, -c:v copy и -vcodec copy?

Я пытаюсь записать видео и аудио с IP-камеры, транслирующей поток в формате H.264.

Я нашел вот такие варианты:

-i "camera_url"  -c:v libx264 -acodec copy "out.mp4"
-i "camera_url"  -c:v copy -acodec copy "out.mp4"
-i "camera_url"  -vcodec copy -acodec copy "out.mp4"

Может кто-нибудь сказать, в чем разница между этими тремя типами записей? Насколько я понимаю, последний не делает перекодировки, поэтому все, что поступает с камеры, сохраняется в файле. А как насчет двух других?

решение1

Параметр -codecустанавливает выбор кодировщика. Это может быть либо имя кодировщика, либо copy. Последний избегает перекодировки и копирует пакеты со входа на выход. -c— это краткая форма для -codec. Оба они могут приниматьспецификаторы потока, например -c:v:2или -codec:a. Первый вариант установит кодер для 3-го видеопотока на выходе, а второй — кодер для всех аудиопотоков.

vcodecи acodecявляются псевдонимами для -c:vи , -c:aно не принимают спецификаторы потока.

Связанный контент