avconv создает нулевой байтовый файл при попытке уменьшить видео в формате mp4

У меня видео, созданное с использованием моего телефона, которое я пытаюсь уменьшить с 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
задан 13 April 2017 в 15:24

1 ответ

Во время этого преобразования и видео и аудио должны декодироваться из исходного файла и затем кодироваться к конечному файлу. В этом случае исходный файл, оказывается, кодирует аудио 'aac' (Усовершенствованное кодирование звука). Декодирование аудио не является проблемой, только кодирование к закодированному аудио 'aac', кажется, проблематично.

Посмотрите последние две строки вывода выше:

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

, Как указано в сообщении кодер 'aac' экспериментален. Для использования его так или иначе добавляют '-strict экспериментальный' как это:

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

Это будет использовать экспериментальный кодер для создания видео со встроенным аудио, которое кодируется 'aac'. Если параметр опущен, никакой вывод не создается (только нулевой файл байта). Так, никакой кодер не используется в этом случае. Я смог преобразовать видео как этот без проблемы. Если кодек не работает на Вас, можно определить другой кодек для аудио как этот (использующий mp3 как пример):

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

, Если не слышимая звуковая дорожка в той записи вообще - так как Вы преобразовываете промежуток времени - Вы не могли бы хотеть встраивать аудио вообще. Достигнуть этого использования параметр -an:

avconv -i input.mp4 -an -s 640x480 output.mp4
0
ответ дан 13 April 2017 в 15:24

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

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