Я ищу приложение, которое помогло бы мне эффективно и без потерь вырезать биты из начала и конца файла mp4 .
например. Есть ли что-то, что позволяет мне найти ключевой кадр и скопировать участок между этим и другим ключевым кадром, без необходимости перекодировать лот (медленно и с потерями) и без потери синхронизации AV?
Под mp4 я имею в виду Видео H264 + аудио AAC в контейнере MP4
Пред h264 дня Avidemux был отличным инструментом для этого, так как вы можете повторно использовать исходные закодированные потоки, что означает отсутствие потерь и всего несколько секунд, чтобы создать усеченную версию, но это с h264 безнадежно - открытие дает вам две возможности: использовать безопасный режим (который теряет AV-синхронизацию) или использовать опасный режим, который сразу приводит к сбою.
AFAIK, Openshot, Kdenlive, Pitivi и т. Д. Будут делать это путем декодирования и перекодирования (медленно и с потерями).
Кажется простой вещью (вероятно, показывает мое отсутствие знаний здесь!), Поэтому мне было интересно, если я что-то упустил.
ffmpeg -i source.mp4 -ss 00:00:00 -t 00:00:00 -vcodec copy -acodec copy splice.mp4
Это займет source.mp4 и, используя те же аудио- и видео-кодеки и без ухудшения качества, займет -t раз после -ss время начала видео и вывод вашего splice.mp4
Обратите внимание, что время очень чувствительно к форматированию (выше приведен пример форматирования). Также в некоторых распределениях ffmpeg
заменено на avconv
. Просто запустите приведенную выше команду и замените слово ffmpeg на avconv, чтобы решить эту проблему.
Еще один отличный источник информации по этой теме. (Спасибо @pbhj)
В Ubuntu 16.04 эквивалентом ffmpeg
является команда avconv
Чтобы установить его, запустите:
sudo apt-get install libav-tools
Пример командной строки для обрезки видео по времени:
avconv -i originalFile.ogv -ss 00:00:00 -t 00:00:10 -vcodec copy -acodec copy croppedFile.ogv