ffmpeg - Перетворення файлів MOV в MP4 [закрито]


145

Щойно я встановив ffmpeg, і я намагаюся кодувати всі мої завантажені відео у файл .mp4. Більшість користувачів наразі завантажують .mov, і я хочу перетворити кожне відео в .mp4.

Я виконую команду наступним чином:

ffmpeg -i movie.mov -vcodec copy -acodec cop out.mp4

Але я отримую лише наступні помилки

ffmpeg version 0.8.5, Copyright (c) 2000-2011 the FFmpeg developers
  built on Aug 19 2012 11:38:20 with clang 3.1 (tags/Apple/clang-318.0.61)
  configuration: --enable-nonfree --enable-gpl --enable-version3 --enable-postproc --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libfaac --enable-libxvid --enable-libx264 --enable-libvpx --enable-hardcoded-tables --enable-shared --enable-pthreads --disable-indevs --cc=clang
  libavutil    51.  9. 1 / 51.  9. 1
  libavcodec   53.  7. 0 / 53.  7. 0
  libavformat  53.  4. 0 / 53.  4. 0
  libavdevice  53.  1. 1 / 53.  1. 1
  libavfilter   2. 23. 0 /  2. 23. 0
  libswscale    2.  0. 0 /  2.  0. 0
  libpostproc  51.  2. 0 / 51.  2. 0
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'movie.mov':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    creation_time   : 2012-03-28 07:13:20
  Duration: 00:00:26.23, start: 0.000000, bitrate: 12974 kb/s
    Stream #0.0(eng): Video: mjpeg, yuvj420p, 1280x720 [PAR 72:72 DAR 16:9], 12972 kb/s, 11.67 fps, 600 tbr, 600 tbn, 600 tbc
    Metadata:
      creation_time   : 2012-03-28 07:13:20
File 'out.mp4' already exists. Overwrite ? [y/N] y
Output #0, mp4, to 'out.mp4':
  Metadata:
    major_brand     : qt  
    minor_version   : 537199360
    compatible_brands: qt  
    creation_time   : 2012-03-28 07:13:20
    encoder         : Lavf53.4.0
    Stream #0.0(eng): Video: mjpeg, yuvj420p, 1280x720 [PAR 72:72 DAR 16:9], q=2-31, 12972 kb/s, 600 tbn, 600 tbc
    Metadata:
      creation_time   : 2012-03-28 07:13:20
Stream mapping:
  Stream #0.0 -> #0.0
Press [q] to stop, [?] for help
frame=  121 fps=  0 q=-1.0 size=   16408kB time=00:00:10.08 bitrate=13332.2kbitsframe=  306 fps=  0 q=-1.0 Lsize=   41543kB time=00:00:26.12 bitrate=13025.0kbits/s    
video:41538kB audio:0kB global headers:0kB muxing overhead 0.012531%

Ви впевнені, що це помилки? Це мені більше схоже на файл журналу. Він навіть просить перезаписати попередній mp4: Файл 'out.mp4' вже існує. Переписати? [y / N] y
Конрад Лотц

Відповіді:


254

Команда просто передати його в новий контейнер (mp4), необхідний для деяких додатків, таких як Adobe Premiere Pro без кодування (швидко):

ffmpeg -i movie.mov -vcodec copy -acodec copy out.mp4

Альтернатива, як згадується в коментарях, яка перекодує найкращі якості ( -qscale 0):

ffmpeg -i input.mov -q:v 0 output.mp4

70
Оскільки це з'явиться в результатах пошуку, я додаю оновлену команду для ffmpeg на момент написання: ffmpeg -i input.mov -qscale 0 output.mp4
StudioEvoque

14
@StudioEvoque що робить -qscale 0прапор?
CyberSkull

4
@CyberSkull -qscaleвстановлює рівень стиснення. Чим нижче значення qscale, тим краща якість. Доступні значення qscale коливаються від 1 (найвища якість) до 31 (найнижча якість).
RonnyKnoxville

8
@MiguelBartelsman @Baodad контейнер пакує декілька потоків відео та аудіо, додає заголовок та зміст. Контейнери Quicktime (mov) та MPEG (mp4) працюють зовсім по-різному. Якщо ви просто перейменовуєте файл Quicktime в mp4, ви робите вигляд, що це відео MPEG, але він все ще залишається контейнером Quicktime. Зверніть увагу: оскільки ви використовуєте copyдля параметра кодек, ви повідомляєте FFMpeg скопіювати фактичні медіа-дані, без повторного кодування в інший кодек.
Ічтьо

10
@StudioEvoque будь обережно! Що ви тут пропонуєте, це щось зовсім інше, ніж це робило і, певно, хотіло. Ви не даєте специфікації кодеку, тому ви просите FFMpeg перекодувати фактичні медіа-дані в стандартний кодек для асоційованого з MP4-контейнером. Навіть якщо ви використовуєте налаштування найвищої якості, перекодування завжди втратить певну якість. Лише під час використання -c copyви гарантуєте, що оригінальні медіа-дані як такі не торкнулися, змінився лише контейнер
Ichthyo,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.