Перекодирование старых mjpeg avi в h264

Перекодирование старых mjpeg avi в h264

У меня есть коллекция личных jpeg и avi (формат mjpeg), записанных камерой Olympus u5000. Поскольку mjpeg не подходит для воспроизведения в xbmc, я хотел бы перекодировать его в формат h264. Самое большее, что у меня есть, это следующая строка:

avconv -i P3040001.AVI -strict experimental -c:v libx264 -b:v 8000k -c:a ac3 -b:a 192k output.mp4

Эта строка преобразует:

avconv version 9.11-6:9.11-2ubuntu2, Copyright (c) 2000-2013 the Libav developers
  built on Mar 24 2014 06:12:33 with gcc 4.8 (Ubuntu 4.8.2-17ubuntu1)
Guessed Channel Layout for  Input Stream #0.1 : mono
Input #0, avi, from 'P3040001.AVI':
  Metadata:
    creation_time   : 2013-03-04 12:21:39
    encoder         : OLYMPUS u5000
  Duration: 00:00:01.99, start: 0.000000, bitrate: 12920 kb/s
    Stream #0.0: Video: mjpeg, yuvj422p, 640x480, 30 fps, 30 tbr, 30 tbn
    Stream #0.1: Audio: pcm_u8, 8000 Hz, mono, u8, 64 kb/s

к

avconv version 9.11-6:9.11-2ubuntu2, Copyright (c) 2000-2013 the Libav developers
  built on Mar 24 2014 06:12:33 with gcc 4.8 (Ubuntu 4.8.2-17ubuntu1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 2013-03-04 12:21:39
    encoder         : Lavf54.20.3
  Duration: 00:00:02.09, start: 0.000000, bitrate: 35 kb/s
    Stream #0.0(und): Video: h264 (High), yuv420p, 640x480, 17 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc
    Metadata:
      creation_time   : 2013-03-04 12:21:39
    Stream #0.1(und): Audio: aac, 8000 Hz, mono, fltp, 9 kb/s
    Metadata:
      creation_time   : 2013-03-04 12:21:39

Как видите, у меня проблема со звуком. В output.mp4 звука вообще нет. Я хотел бы использовать avconv, потому что у меня куча файлов на сервере xubuntu 14.04.

Что я делаю не так?

С уважением.

решение1

В своей команде вы не указали, что следует делать со звуковой дорожкой.

Попробуй это:

avconv -i P3040001.AVI -strict experimental -c:v libx264 -b:v 8000k -c:a ac3 -b:a 192k output.mp4.

Не стесняйтесь настраивать битрейты по своему усмотрению. Вы можете использовать их, avinfoчтобы получить представление об исходном битрейте и перекодировать в аналогичный.

Вы также можете использовать программу с графическим интерфейсом, например Avidemux.

решение2

Попробуй это:

 avconv -i input.avi -c:v libx264 -b 800k output.mp4

это перекодирует видео с помощью кодека libx264 со скоростью 800k и позволит кодировщику решить, что делать со звуком, чтобы обеспечить совместимость с контейнером mp4. Отрегулируйте битрейт в соответствии с вашими предпочтениями по качеству. Учитывая все обстоятельства, вам следует разрешить более высокий битрейт для больших фильмов. (например, фильму с разрешением 1280x960 потребуется примерно в 4 раза больший битрейт, чем фильму с разрешением 640x480, чтобы сохранить аналогичное качество)

решение3

Возможно, лучшим вариантом было бы использоватьпредустановленныйдля кодирования x264 и укажите Constant Rate Factor (CRF) вместо фиксированного битрейта. Звук из источника не самый лучший для начала, но, возможно, преобразование в относительно низкий битрейт VBR mp3 может звучать нормально. Попробуйте следующее:

avconv -i P3040001.AVI \
   -c:v libx264 -preset slow -crf 22 -tune film \
   -c:a libmp3lame -qscale:a 7 -ar 44100 \
   output.mp4

и это может дать приемлемое качество видео и, возможно, лучший звук. Отрегулируйте-qscale:a 7настройка на лучший звук, меньшее число даст более высокий целевой битрейт.

Если avconv тормозит x264 или libmp3lame, вам нужно будет добавить соответствующийlibavcodec-extra* пакет, подходящий для вашей версии Ubuntu.

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