web-dev-qa-db-ja.com

MP4ビデオをダウンサンプリングしようとするときにavconvがゼロバイトファイルを作成する

1080pから640x480にダウンサンプリングしようとしている携帯電話を使用して作成したタイムラプスビデオがあります。

この答え によると、私はavconvコマンドを使用しています

avconv -i input.mp4 -s 640x480 output.mp4

しかし、明らかに何も含まれていない0バイトのファイルを作成します。

コマンドの出力は次のとおりです

a@b:~$avconv  -i ./Videos/CivilStudy.mp4 -s 640x480 ./abc.mp4
avconv version     9.16-6:9.16-0ubuntu0.14.04.1, Copyright (c) 2000-2014 the Libav developers
  built on Aug 10 2014 18:19:26 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from './Videos/CivilStudy.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    creation_time   : 1970-01-01 00:00:00
    encoder         : Lavf52.64.2
  Duration: 00:00:43.58, start: 0.000000, bitrate: 10159 kb/s
    Stream #0.0(und): Video: mpeg4 (Simple Profile), yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 10025 kb/s, 24 fps, 24 tbr, 24 tbn, 24 tbc
    Metadata:
      creation_time   : 1970-01-01 00:00:00
    Stream #0.1(und): Audio: aac, 44100 Hz, mono, fltp, 129 kb/s
    Metadata:
      creation_time   : 1970-01-01 00:00:00
[libx264 @ 0x843bde0] using SAR=4/3
[libx264 @ 0x843bde0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64
[libx264 @ 0x843bde0] profile High, level 3.0
[libx264 @ 0x843bde0] 264 - core 142 r2389 956c8d8 - H.264/MPEG-4 AVC codec -     Copyleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=24 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.25 aq=1:1.00
encoder 'aac' is experimental and might produce bad results.
Add '-strict experimental' if you want to use it

私は今何をしますか?

2
Registered User

この変換中に、ビデオとオーディオの両方を元のファイルからデコードし、ターゲットファイルにエンコードする必要があります。この場合、元のファイルのオーディオは 'aac'(Advanced Audio Coding)でエンコードされています。オーディオのデコードは問題ではなく、「aac」エンコードされたオーディオへのエンコードのみが問題のようです。

上記の出力の最後の2行を参照してください。

encoder 'aac' is experimental and might produce bad results.
Add '-strict experimental' if you want to use it

メッセージで述べたように、エンコーダ「aac」は実験的なものです。とにかくそれを使用するには、次のように「-strict experimental」を追加します。

avconv -i input.mp4 -s 640x480 -strict experimental output.mp4

これは、実験的なエンコーダを使用して、「aac」でエンコードされた埋め込みオーディオを含むビデオを生成します。パラメータが省略された場合、出力は作成されません(0バイトのファイルのみ)。したがって、その場合はエンコーダーは使用されません。そんな動画を問題なく変換できました。コーデックが機能しない場合は、そのようなオーディオ用に他のコーデックを指定できます(例としてmp3を使用)。

avconv -i input.mp4 -acodec mp3 -s 640x480 output.mp4

その録音に聞こえるサウンドトラックがまったくない場合-タイムラプスを変換しているため、オーディオをまったく埋め込みたくない場合があります。これを実現するには、パラメータ-anを使用します。

avconv -i input.mp4 -an -s 640x480 output.mp4
3
Michael