avconv: сохранение зависаний процесса MP4

Не совсем уверен, если я должен опубликовать это на Askubuntu или StackOverflow.

Я настраиваю веб-сайт, где пользователи могут загружать видео и делиться ими. Я использую avconv, чтобы уменьшить размер видео и сохранить его в два раза, один раз как mp4 и снова как webm.

Загружая.MOV с телефона, конвертация видео быстрая и управляемая.

Загружая.mp4 с Samsung Galaxy S3, конвертация видео в webm также происходит быстро. Но, преобразование в другой mp4 занимает навсегда - буквально часы. Зачем? Кто-нибудь может пролить свет на проблему?

Мой вывод avconv ниже.

avconv -i /path/video.mp4 -c:v libx264 -vf transpose=1,transpose=1,transpose=1 -s 640x480 /path/video-out.mp4
avconv version 0.8.17-4:0.8.17-0ubuntu0.12.04.1, Copyright (c) 2000-2014 the Libav developers
built on Mar 16 2015 13:26:50 with gcc 4.6.3
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/path/video.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 0
    compatible_brands: isom3gp4
    creation_time   : 2015-09-04 15:08:21
Duration: 00:00:07.76, start: 0.000000, bitrate: 11756 kb/s
Stream #0.0(eng): Video: h264 (Constrained Baseline), yuv420p, 1280x720, 11967 kb/s, 29.81 fps, 90k tbr, 90k tbn, 180k tbc
Metadata:
  creation_time   : 2015-09-04 15:08:21
Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16, 119 kb/s
Metadata:
  creation_time   : 2015-09-04 15:08:21
File '/path/video-out.mp4' already exists. Overwrite ? [y/N] y
[buffer @ 0xc3d580] w:1280 h:720 pixfmt:yuv420p
[scale @ 0xc3dac0] w:1280 h:720 fmt:yuv420p -> w:640 h:480 fmt:yuv420p flags:0x4
[transpose @ 0xc3e280] w:640 h:480 dir:1 -> w:480 h:640 rotation:clockwise vflip:0
[transpose @ 0xc3e7c0] w:480 h:640 dir:1 -> w:640 h:480 rotation:clockwise vflip:0
[transpose @ 0xc3ede0] w:640 h:480 dir:1 -> w:480 h:640 rotation:clockwise vflip:0
[libx264 @ 0xc2b100] MB rate (108000000) > level limit (983040)
[libx264 @ 0xc2b100] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
[libx264 @ 0xc2b100] profile Main, level 5.1
[libx264 @ 0xc2b100] 264 - core 120 r2151 a3f4407 - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=0 b_adapt=1 b_bias=0 direct=1 weightb=0 open_gop=1 weightp=2 keyint=250 keyint_min=25 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
Output #0, mp4, to '/path/video-out.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 0
    compatible_brands: isom3gp4
    creation_time   : 2015-09-04 15:08:21
    encoder         : Lavf53.21.1
    Stream #0.0(eng): Video: libx264, yuv420p, 480x640, q=-1--1, 180k tbn, 90k tbc
    Metadata:
      creation_time   : 2015-09-04 15:08:21
    Stream #0.1(eng): Audio: libvo_aacenc, 48000 Hz, stereo, s16, 200 kb/s
    Metadata:
      creation_time   : 2015-09-04 15:08:21
Stream mapping:
  Stream #0:0 -> #0:0 (h264 -> libx264)
  Stream #0:1 -> #0:1 (aac -> libvo_aacenc)
Press ctrl-c to stop encoding

Вот пример вывода кадра:

frame=124398 fps=142 q=33.0 size=   16885kB time=1.38 bitrate=100110.2kbits/s dup=124356 drop=0

У меня был процесс, работающий все время, пока я писал этот вопрос, и пока что это сделано... 22 кадра.

В чем может быть проблема?

РЕДАКТИРОВАТЬ: И это не огромный файл, либо. Это что-то вроде 11 мегабайт, 1280 х 720.

ВНОВЬ РЕДАКТИРОВАТЬ: С момента публикации вопроса процесс только начал зависать и не будет перемещаться за пределы кадра... 32 или около того.

ВНОВЬ РЕДАКТИРОВАТЬ: Перезагружать сервер с трудом, если процессор просто перегружен другими процессами. Нет кости, та же проблема.

1 ответ

Решение

Получить ffmpeg

avconv и подделка "ffmpegиз Либава глючат. ffmpeg строить. У вас есть 4 основных варианта:

  • Загрузите статическую сборку. Легко и быстро, но не может быть настроено и не поддерживает несвободные вещи, такие как некоторые кодировщики. Не вмешиваться в систему.

  • Компиляция Вы можете следовать пошаговой инструкции по копированию и вставке. Это не будет мешать работе системы.

  • Используйте PPA (для доверенных пользователей).

  • Обновление до Ubuntu Vivid 15.04 или новее. Яркий содержит ffmpeg 2.5.8 из FFmpeg. Тем не менее, разработка FFmpeg настолько активна, что вы все равно можете использовать статическую сборку или компиляцию.

Использование статической сборки

После того, как вы загрузите и распакуете его, вы можете использовать его следующим образом (при условии, что он находится в Downloads каталог в вашем доме).

  • Включите полный путь:

    /home/user/Downloads/ffmpeg -i …
    

    или же

    ~/Downloads/ffmpeg -i …
    
  • Или перейдите в каталог, содержащий ffmpeg и запустить:

    ./ffmpeg -i …
    
  • Или переместите его в каталог в вашем PATH, ~/bin каталог является одним из таких мест (при условии, что один и тот же пользователь будет выполнять ffmpeg).

    1. Сделать каталог с именем bin в вашем домашнем каталоге.
    2. Переместить ffmpeg двоичный в ~/bin,
    3. Либо беги source ~/.profile, или просто выйдите из системы, затем войдите.
    4. Теперь просто беги ffmpeg Команда в любом терминале, и она должна просто работать.
Другие вопросы по тегам