Як обрізати (не зображений час) відеофайл MP4


17

Я шукаю додаток, який допоможе мені ефективно та без втрат відбивати біти від початку та закінчення файлу mp4 .

наприклад, чи є щось, що дозволяє мені знайти ключовий кадр та скопіювати лот між тим та іншим ключовим кадром, не потребуючи перекодування партії (повільно та втратно) та не втрачаючи синхронізацію AV?

Під mp4 я маю на увазі відео H264 + AAC-аудіо в контейнері MP4

Попередні h264 дні Avidemux був чудовим інструментом для цього, оскільки ви можете повторно використовувати оригінальні закодовані потоки, що не означають втрат, і знадобиться лише кілька секунд, щоб створити оброблену версію, але з h264 це безнадійно - відкриття дає два варіанти: використовувати безпечний режим (яка масово втрачає синхронізацію AV) або використовувати небезпечний режим, який негайно виходить з ладу.

AFAIK, Openshot, Kdenlive, Pitivi і т. Д. Все це робитимуть розшифровкою та перекодуванням (повільно і втрачено).

Здається, проста річ (напевно, показує мою нестачу знань тут!), Тому було цікаво, чи я щось пропускаю.


Якщо вам потрібно порубати кінець відео, перегляньте відповідь, яку я дав на іншу тему: askubuntu.com/questions/412558/…
v010dya

2
superuser.com/questions/377343/… відноситься добре і пропонує аналогічне рішення, ніж нижче, але додає добру інформацію.
pbhj

Відповіді:


24

ffmpeg

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)


3
Блискуча. Зауважте, що ви не можете скоротити -ssаргумент, тобто 9:00протягом 9 хвилин потрібно висловити, як 00:09:00інакше він мовчки ігнорується. Я думаю, що цю відповідь також слід оновити для використання avconv, згідно з попередженням ffmpeg. Спасибі.
artfulrobot

Бічне зауваження, це попередження відображає лише те, що у вас встановлено avconv, а не ffmpeg, тому ваш виконуваний файл ffmpeg насправді є лише обгорткою навколо avconv, і ця обгортка може скоро застаріти. Якби у вас був встановлений ffmpeg, але не avconv, ви б не отримали це попередження. Це не означає, що сам ffmpeg застарілий (хоча останні версії Ubuntu вибрали встановлення avconv за замовчуванням, а не ffmpeg).
thomasrutter

5

У 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

Недоступно в пізніших версіях Ubuntu.
lolmaus - Андрій Михайлов
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.