오래된 mjpeg avi를 h264로 트랜스코딩

오래된 mjpeg avi를 h264로 트랜스코딩

저는 Olympus u5000 카메라로 녹화한 개인 jpeg 및 avi(mjpeg 형식) 컬렉션을 가지고 있습니다. 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에는 오디오가 전혀 없습니다. 내 xubuntu 14.04 서버에 많은 파일이 있기 때문에 avconv를 사용하고 싶습니다.

내가 뭘 잘못하고 있는 걸까요?

문안 인사.

답변1

명령에서 오디오 트랙으로 수행해야 할 작업을 지정하지 않았습니다.

이 시도:

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

원하는 대로 비트 전송률을 자유롭게 조정하세요. avinfo원래 비트 전송률에 대한 아이디어를 얻고 유사한 비트 전송률로 코드 변환하는 데 사용할 수 있습니다 .

Avidemux와 같은 GUI 프로그램을 사용할 수도 있습니다.

답변2

이 시도:

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

그러면 libx264 코덱을 사용하여 800k 속도로 비디오를 다시 인코딩하고 인코더가 mp4 컨테이너와의 호환성을 보장하기 위해 오디오로 무엇을 할지 결정하게 됩니다. 품질 기본 설정에 맞게 비트 전송률을 조정합니다. 모든 사항을 고려해 볼 때 더 큰 영화에는 더 높은 비트 전송률을 허용해야 합니다. (예를 들어 1280x960 영화의 경우 유사한 품질을 유지하려면 640x480 영화의 약 4배의 비트 전송률이 필요합니다.)

답변3

아마도 가장 좋은 옵션은사전 설정x264 인코딩의 경우 고정 비트 전송률 대신 CRF(Constant Rate Factor)를 지정합니다. 소스의 사운드는 시작하기에 가장 좋지는 않지만 상대적으로 낮은 비트 전송률의 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 버전에 적합한 패키지입니다.

관련 정보