Транскодирование старого mjpeg avi's к h264

У меня есть набор частного jpeg’s и avi’s (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

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

Что я делаю неправильно?

С уважением.

3
задан 4 May 2014 в 18:32

3 ответа

В Вашей команде Вы не определяли то, что должно быть сделано с аудиотреком.

Попытка это:

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

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

можно также использовать программу GUI как Avidemux.

1
ответ дан 18 November 2019 в 05:01

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

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

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

1
ответ дан 18 November 2019 в 05:01

Возможно, наилучший вариант состоял бы в том, чтобы использовать , задает для кодирования x264 и определяют Постоянный фактор уровня (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-дополнительный* пакет, подходящий для версии Ubuntu.

0
ответ дан 18 November 2019 в 05:01

Другие вопросы по тегам:

Похожие вопросы: