Какие параметры доступны для _без потерь_ обрезки видео mp4/m4v в macOS?

У меня есть видео m4v без DRM, которое я хотел бы отредактировать, обрезав здесь и там.

  • QuickTime X ($0)

    • Плюсы: бесплатный, встроенный в OS X
    • Минусы: селектор для выбора времени «начала» и «окончания» не очень прост в использовании, чтобы получить точное время входа / выхода.
  • iMovie ( бесплатно, если вы купили последний Mac)

    • Плюсы: бесплатно
    • Минусы: не может обрабатывать mp4/m4v напрямую, должен быть перекодирован [я полагаю]
  • QuickTime 7 Pro ( $30 )

    • Плюсы: можно делать очень точные (до кадра) правки.
    • Минусы: сохраняет только как .mov, а не .mp4/.m4v
  • SimpleMovieX ( $40 )

    • Плюсы: утверждает, что может это сделать (хотя я попробовал демо и нашел пользовательский интерфейс настолько ужасным, что даже не могу проверить, работает ли он, а если работает, делает ли он что-то, чего не может QuickTime X)
    • Минусы: похоже, что это «заброшенное ПО», так как оно не получало даже незначительных обновлений более года, обзоры MacUpdate почти полностью отрицательные, начиная с 2009 года, включая медленные ответы или отсутствие ответов от разработчика.

Есть ли другие хорошие варианты*? Если да, то какие они, и каковы их плюсы/минусы?

* Я указал «хорошо», потому что Google бесполезен для этой темы, поскольку результаты завалены сайтами, предлагающими «обзоры» программного обеспечения, которое по какой-то простой случайности они также продают. (Большинство сайтов и большая часть программного обеспечения также кажутся очень похожими.) Там явно много дерьма.

Я так и не понял, как именно, но иногда iMovie импортирует файлы mp4/m4v без повторного кодирования. Я не знаю, есть ли способ точно узнать, как он решает, но это может быть основано на определенных параметрах H.264, качестве, длине или даже просто звуковой дорожке... если вы можете понять, что это может быть лучшим вариантом.
Squared5.com/svideo/mpeg-streamclip-mac.html — еще один вариант, который я должен был включить. Если бы мне нужно было сделать проект сегодня, я бы, вероятно, использовал его.
Кодек (H264) имеет значение. Пока вы не перекодируете m4v, вы редактируете его без потерь.
Даниэль, есть ли в сети примеры видео в формате MP4? (либо образец видео с той же камеры, либо вы можете опубликовать здесь свои требования к тому, какой конкретный закодированный контент / кодек находится внутри контейнера mp4? Возможно, видео из iTunes U будет эквивалентно?
Бесплатный Avidemux с открытым исходным кодом — fixounet.free.fr/avidemux — идеальный инструмент для этого.
Avidemux также хорош для вырезания фрагментов из середины видео, а также из концов. Однако в каждом случае он может безопасно резать только i-кадры. (В отличие от QuickTime Player, который может запускаться и останавливаться на любом кадре. Я не знаю, как это сделать; я думаю, что MP4 должен позволять ему сохранять предыдущий/следующий i-кадр и все промежуточные кадры, но начинать/останавливать воспроизведение в одном кадре. из последних.)

Ответы (7)

Я сделал графический инструмент, который использует ffmpeg, чтобы вы могли обрезать видео без потерь, выбирая начальную и конечную точки на временной шкале: https://github.com/mifi/lossless-cut .

Это открытый исходный код и кроссплатформенный.

Это хороший инструмент, который значительно упрощает процесс использования ffmpeg для редактирования видео. Графический интерфейс очень помогает. Настоятельно рекомендуется.
Фантастический супер-простой инструмент. @Mikael, спасибо за это!
К сожалению, не работает с 10-битными видео 4K MP4.
Но магазин приложений говорит, что вам нужно платить за это деньги. Есть ли способ, которым пользователи Mac также могут получить его бесплатно, как вы это делаете в Ubuntu?
Вы можете бесплатно скачать его на GitHub: github.com/mifi/lossless-cut/releases .

iMovie (не без потерь, но лучше, чем раньше)

iMovie v10 (выпущенный через некоторое время после того, как изначально был задан вопрос) теперь лучше обрабатывает больше типов мультимедиа, поэтому позволяет избежать повторного кодирования импорта для большей части контента H.264 (mp4, m4v, mov, AVHDC, mts, mt2s).

Однако он по-прежнему будет перекодировать при экспорте, поэтому технически не может быть без потерь — однако еще одна новая функция — это возможность настраивать качество экспорта, которое может быть ближе к без потерь. Я подозреваю, что эта часть ответа может в равной степени относиться к другому программному обеспечению для редактирования видео, ориентированному на проект (например, Premiere или Final Cut), потому что я думаю, что все они обычно перекодируют на выходе, хотя обычно их очень легко использовать для точной обрезки.

Лично я обычно считаю, что одно повторное кодирование не является большой проблемой, но понимаю, что вы специально просили решение без потерь, так что...

Без потерь (но намного сложнее!)

Существуют технические ограничения относительно того, насколько точно вы можете обрезать видео без необходимости перекодировать хотя бы какую-то его часть, и это в основном зависит от частоты i-кадра. Если каждый кадр является i-кадром, вы можете вырезать где угодно, но если они только каждые несколько секунд, то вы можете вырезать без потерь только эти i-кадры без потери содержимого или повторного кодирования (по крайней мере, часть кадра). stream), поэтому он может начинаться с i-frame.

ffmpeg

В этом SO Q&A конкретно поднимается вопрос о том, как разрезать i-frames с помощью ffmpeg. Я не знаю ни одного приложения с графическим интерфейсом для этого, но в основном вы запускаете команду примерно следующего вида:

ffmpeg -i input.m4v -vcodec copy -acodec copy -ss 00:01:20.000 -t 00:37:50.000 output.m4v

Два заданных времени — это start и duration , и они могут быть указаны либо в секундах, либо в виде hh:mm:ss.ss, а и -acodec copyговорят -vcodec copyffmpeg не перекодировать.

Я не совсем уверен, что произойдет, если вы вырежете слишком рано, но я думаю, что видео по существу пустое (или, возможно, повреждено, в зависимости от проигрывателя), пока не встретит i-кадр. Таким образом, вы, вероятно, захотите найти ближайший i-кадр перед монтажом. Этот ответ решает эту проблему с помощью ffprobeand awk, хотя и немного неловко. По сути, вы используете ffprobeсканирование кадров и поиск ближайшего ключевого кадра ( flags=K) перед идеальной точкой отсечения. Полный вывод для каждого кадра видео можно увидеть так:

ffprobe -select_streams v -show_frames <INPUT>

Связанный ответ предоставляет эту команду для поиска ключевого кадра до определенного времени:

ffprobe -select_streams v -show_frames -v quiet INPUT.mp4 | 
awk -F= ' 
  /pict_type=/ { if (index($2, "I")) { i=1; } else { i=0; } } 
  /pkt_pts_time/ { if (i && ($2 >= 150)) print $2; }  
' | head -n 1

И, наконец, если вам действительно нужно вырезать где-то между двумя i-кадрами, вы можете разделить видео и воссоединиться. Основываясь на информации из этого ответа , это должно быть что-то вроде:

ffmpeg -f concat -i list_of_videos.txt -c copy OUTPUT.mp4

Где list_of_videos.txtнаходится простой текстовый файл со списком файлов, которые вы хотите объединить.

Краткое содержание

iMovie, вероятно, достаточно хорош для большинства случаев (начиная с версии 10) и очень прост.

ffmpeg может сделать это без потерь (или очень близко к без потерь), немного повозившись; уровень сложности зависит от того, насколько вы требовательны к точной отправной точке и частоте i-кадров.

Меня больше всего беспокоит время, затрачиваемое на перекодирование (это много многочасовых видео, которые я беру на несколько минут), но ffmpeg выглядит многообещающе!
Ах, хорошо, для длинных видео достаточно вероятно (полностью зависит от источника кодирования), что i-кадры будут отличаться друг от друга до 10 секунд, так что это может быть проблемой, если вы хотите обрезать их более точно. Разделение, перекодирование первых <10 и конкатенация должны работать, но повторять их много раз было бы неинтересно.

Quicktime 7 Pro ( $30 )

Откройте свое видео. Если вы хотите увидеть точный номер кадра: в левом нижнем углу нажмите на таймер, чтобы переключиться на отображение «Номер кадра».

нижний левый

Выберите начальную точку (введите i , когда вы там) и конечную точку (введите o, когда вы там).
выбирать
Перемещайтесь на один кадр за раз с помощью клавиш со стрелками; или перетащите маленькие ручки внизу. (Здесь мы видим конец на кадре 1330.)

В меню «Правка» выберите «Удалить», чтобы избавиться от выделенной части, или выберите «Обрезать», чтобы избавиться от всего остального.
обрезать

Хотя Quicktime 7 будет сохранять только в формате MOOV, он будет экспортировать во многие форматы. Экспортируйте в формате MPEG-4 (например) и избегайте перекодирования, выбрав опцию «Пропустить».

параметры

Это отвечает на часть вопроса, но не на то, как на самом деле использовать программу для обрезки видео.
Хорошо, я думал, что ОП понял остальное. Но все равно поставлю.
От редакции: Quicktime X так же хорош, как Quicktime 7? Я не использовал Quicktime X в течение многих лет.
Я только что столкнулся с той же потребностью и обнаружил, что QT7 был самым простым и быстрым способом решения проблемы. apple.stackexchange.com/a/298690/24706
К сожалению, QT7 (и все остальные 32-битные приложения) перестанут работать в MacOS Catalina.

Приложение LosslessCut кажется очень многообещающим.

https://github.com/mifi/lossless-cut

Простой и сверхбыстрый кросс-платформенный инструмент для обрезки/обрезки видео- и аудиофайлов без потерь. Отлично подходит для экономии места за счет грубой обрезки больших видеофайлов, снятых с видеокамеры, GoPro, дрона и т. д. Он позволяет быстро извлекать хорошие фрагменты из ваших видео и отбрасывать многие гигабайты данных, не выполняя медленное перекодирование и тем самым теряя качество. Это очень быстро, потому что он делает почти прямую копию данных. Он подпитывается потрясающим ffmpeg (входит в комплект) для выполнения черновой работы. Он также имеет некоторые другие операции с видео без потерь.

На скриншоте я выделил 3 области обрезки. Когда я нажимаю E, каждый раздел нарезается и сохраняется в отдельный видеофайл. Это очень приятный рабочий процесс.

Очень быстрое и потенциально значительное улучшение рабочего процесса по сравнению с другими инструментами, но пользовательский интерфейс / удобство использования могут потребовать некоторой работы. Кроссплатформенный инструмент. Я бы хотел, чтобы это было родным для Mac.

введите описание изображения здесь

Разве это не тот же ответ, что и этот ? Мне нравится, что вы добавили свой опыт, но, может быть, лучше отредактировать исходный ответ и включить его туда?

Final Cut Pro X ($299,99) Это одна из лучших программ для редактирования видео для Mac. Благодаря редактированию профессионального качества вы можете экспортировать файлы в более высоком, более низком или в том же формате, что и раньше. Чтобы использовать редактор, вы можете использовать инструмент лезвия в нелинейном редакторе, чтобы вырезать части видео или изменить объемный звук 2.1 на 5.1. Он также имеет мультиформатную шкалу времени.

DaVinci Resolve 11 — существует три версии этого программного обеспечения. DaVinci Resolve Lite (0 долларов США). Программное обеспечение Davinci Resolve (995 долларов США) или Davinci Resolve (29 995 долларов США). Это одно из лучших программ на сегодняшний день. Известный своими возможностями цветокоррекции, DaVinci Resolve позволяет выполнять многоформатное редактирование, имеет множество возможностей перехода, создание ключевых кадров, потрясающие плагины, функции совместной работы и возможность перехода с Mac на Windows. Это также позволит вам обновить объемный звук, а также позволяет повторно кадрировать и не создавать прокси-носители. Для точного редактирования и для видео, отличного от 3D, вам подойдет облегченная версия. Рекомендуется 8 ГБ оперативной памяти.

Оба этих продукта обеспечивают нелинейное редактирование и возможность обновления медиафайлов до несжатого формата для более быстрого экспорта на DVD.

Вы должны иметь возможность переключаться между кадрами в Quicktime Pro с помощью клавиш со стрелками. Это, конечно, не так просто, как использование Avid, Final Cut, Premiere и т. д., но выполнимо. Вы также можете заставить свои Метки двигаться с помощью клавиш со стрелками.

Я не уверен на 100%, если это без потерь, но (на Биг-Суре, я не знаю о Каталине и ранее), но если вы хотите просто обрезать видео, в Quick Look есть простой видеотриммер, который позволяет вам заменить существующий видео или создать новое видео в исходном формате.