web-dev-qa-db-ja.com

古い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を使用したいと思います。

私が間違っているのは何ですか?

よろしく。

3
user3225309

コマンドでは、オーディオトラックで何をすべきかを指定していませんでした。

これを試して:

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

自由にビットレートを調整してください。 avinfoを使用して、元のビットレートについてのアイデアを得て、同様のビットレートにトランスコードできます。

AvidemuxなどのGUIプログラムを使用することもできます。

1
Cornelius

これを試して:

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

これは、800kのレートでlibx264コーデックを使用してビデオを再エンコードし、mp4コンテナとの互換性を確保するためにエンコーダーがオーディオの処理方法を決定できるようにします。品質設定に合わせてビットレートを調整します。より大きい映画には高いビットレートを許可する必要があると考えられるすべてのもの。 (たとえば、1280x960の映画は、同様の品質を維持するために1つの640x480のビットレートの約4倍を必要とします)

1
Elder Geek

おそらく最良のオプションは、x264エンコーディングにpresetを使用し、固定ビットレートではなく、一定レート係数(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で停止する場合、Ubuntuのバージョンに適した適切なlibavcodec-extra *パッケージを追加する必要があります。

0
andrew.46