2

Я искал все способы, как заставить фильтр zoompan работать на видео, у меня нет проблем с изображением:

ffmpeg -loop 1 -i thumbnail_56138ba980d73.png -vf "zoompan=z='min(zoom+0.0015,10)':d=125" -c:v mpeg2video -t 5 -s "796x450" test2.mpeg

Это работает просто отлично, я получаю хороший зум на картинке. Но когда я тогда пытаюсь сделать то же самое, где ввод видео:

ffmpeg -i tmpFile_149712.mp4 -vf "zoompan=z='min(zoom+0.0015,10)':d=150" -c:v mpeg2video -t 5 -s "796x450" test2.mpeg

Затем он дает мне следующий вывод, и нет видео из-за прерванного ядром в конце. Так что заставляет меня задуматься, работает ли этот фильтр даже с видео?

Особенно, когда я читаю документацию по параметру zoompan -D «Здесь указывается, сколько эффекта будет длиться для одного входного изображения ».

$ ffmpeg -i tmpFile_149712.mp4 -vf "zoompan=z='min(zoom+0.0015,10)':d=150" -c:v mpeg2video -t 5 -s "796x450" test2.mpeg
ffmpeg version N-73887-g99ad832 Copyright (c) 2000-2015 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
  configuration: --prefix=/home/vagrant/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/home/vagrant/ffmpeg_build    /include --extra-ldflags=-L/home/vagrant/ffmpeg_build/lib --bindir=/home/vagrant/bin --enable-gpl --enable-libass --enable    -libfreetype --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264
  libavutil      54. 28.100 / 54. 28.100
  libavcodec     56. 50.101 / 56. 50.101
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 25.100 /  5. 25.100
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'tmpFile_149712.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf56.40.101
  Duration: 00:00:12.10, start: 0.000000, bitrate: 359 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 356 kb/s, 30 fps, 30 tbr, 15360 tbn, 60     tbc (default)
    Metadata:
      handler_name    : VideoHandler
[mpeg @ 0x2c17020] VBV buffer size not set, using default size of 130KB
If you want the mpeg file to be compliant to some specification
Like DVD, VCD or others, make sure you set the correct buffer size
Output #0, mpeg, to 'test2.mpeg':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf56.40.101
    Stream #0:0(und): Video: mpeg2video, yuv420p, 796x450, q=2-31, 200 kb/s, 30 fps, 90k tbn, 30 tbc (default)
    Metadata:
      handler_name    : VideoHandler
      encoder         : Lavc56.50.101 mpeg2video
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> mpeg2video (native))
Press [q] to stop, [?] for help
[output stream 0:0 @ 0x2c12000] 100 buffers queued in output stream 0:0, something may be wrong.
Past duration 0.998039 too large
*** Error in `ffmpeg': corrupted double-linked list: 0x00000000030af400 ***bits/s dup=0 drop=17100
Aborted (core dumped)    

2 ответа2

0

Работает путем обновления до последней версии. Пробовал с 3.0.2

0

Это похоже на ошибку в вашей версии FFMpeg. Новая версия, кажется, работает, но есть другая проблема. Когда вы передаете видео в качестве входного сигнала для увеличения, оно сначала разбивает его на отдельные кадры, а затем применяет эффект масштабирования / панорамирования для каждого кадра отдельно. Таким образом, вы получите 125 (d = 125 по умолчанию) выходных кадров на каждый из ваших входных видеокадров. Я не мог найти способ как это обойти

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .