Video thumbnails runtime exception


#1

I always get the following error in seahub.log if video thumbnails are activated. Does anybody know something about this problem?

2019-03-08 16:24:14,385 [ERROR] django.request:256 handle_uncaught_exception Internal Server Error: /thumbnail/c6072f86-aa46-44d1-9be3-e4c85a6bb4aa/1024/Amelie/20150221_205152.mp4
Traceback (most recent call last):
  File "/home/seafile/seafile-server-6.3.4/seahub/thirdpart/Django-1.8.18-py2.7.egg/django/core/handlers/base.py", line 132, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/seafile/seafile-server-6.3.4/seahub/seahub/auth/decorators.py", line 27, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/home/seafile/seafile-server-6.3.4/seahub/thirdpart/Django-1.8.18-py2.7.egg/django/views/decorators/http.py", line 158, in inner
    response = func(request, *args, **kwargs)
  File "/home/seafile/seafile-server-6.3.4/seahub/seahub/thumbnail/views.py", line 113, in thumbnail_get
    success, status_code = generate_thumbnail(request, repo_id, size, path)
  File "/home/seafile/seafile-server-6.3.4/seahub/seahub/thumbnail/utils.py", line 116, in generate_thumbnail
    thumbnail_file, file_size)
  File "/home/seafile/seafile-server-6.3.4/seahub/seahub/thumbnail/utils.py", line 149, in create_video_thumbnails
    clip = VideoFileClip(inner_path)
  File "/usr/local/lib/python2.7/dist-packages/moviepy/video/io/VideoFileClip.py", line 91, in __init__
    fps_source=fps_source)
  File "/usr/local/lib/python2.7/dist-packages/moviepy/video/io/ffmpeg_reader.py", line 33, in __init__
    fps_source)
  File "/usr/local/lib/python2.7/dist-packages/moviepy/video/io/ffmpeg_reader.py", line 256, in ffmpeg_parse_infos
    proc = sp.Popen(cmd, **popen_params)
  File "/usr/lib/python2.7/subprocess.py", line 390, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1024, in _execute_child
    raise child_exception
OSError: [Errno 8] Exec format error

moviepy and ffmpeg are installed with pip:

Package                Version
---------------------- -------
appconf                0.1.10 
asn1crypto             0.24.0 
attrs                  16.3.0 
captcha                0.3    
cffi                   1.12.2 
chardet                2.3.0  
click                  6.7    
click-completion       0.3.1  
colorama               0.4.1  
cryptography           2.6.1  
decorator              4.3.2  
Django                 1.11.20
django-appconf         1.0.3  
django-formtools       2.1    
django-qrcode          0.3    
django-ranged-response 0.2.0  
django-simple-captcha  0.5.10 
django-tagging         0.4.6  
django-webpack-loader  0.6.0  
dnspython              1.16.0 
enum34                 1.1.6  
ffmpeg                 1.4    
Flask                  1.0.2  
Flask-JWT              0.3.2  
Flask-SQLAlchemy       2.3.2  
futures                3.2.0  
html5lib               1.0.1  
image                  1.5.27 
imageio                2.4.1  
ipaddress              1.0.22 
itsdangerous           1.1.0  
Jinja2                 2.10   
MarkupSafe             1.1.1  
moviepy                0.2.3.5
mysqlclient            1.3.7  
ndg-httpsclient        0.5.1  
novo-jsobj             0.0.2  
numpy                  1.16.2 
olefile                0.46   
passlib                1.7.1  
Pillow                 5.4.1  
pip                    19.0.3 
proglog                0.1.9  
psutil                 5.4.5  
pyasn1                 0.4.5  
pycparser              2.19   
pycrypto               2.6.1  
pyinotify              0.9.6  
PyJWT                  1.4.2  
pyOpenSSL              18.0.0 
python-ldap            2.4.28 
python-memcached       1.53   
python-nginx           1.4.1  
pytz                   2018.9 
qrcode                 6.1    
requests               2.12.4 
setuptools             33.1.1 
six                    1.12.0 
SQLAlchemy             1.2.7  
tabulate               0.8.2  
tqdm                   4.31.1 
urllib3                1.23   
webencodings           0.5.1  
Werkzeug               0.14.1 
wheel                  0.33.1

moviepy and ffmpeg are also installed for python3.

apt-get install ffmpeg was also started and is installed in /usr/bin/ffmpeg.

root@aml:/home/seafile/logs# /usr/bin/ffmpeg
ffmpeg version 3.2.12-1~deb9u1 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516

Any help is welcome.


#2

Root cause of the problem is the version of moviepy! It definitely works with:

pip install moviepy==0.2.3.2

It does not work with 0.2.3.5 or 1.0.0 (python3 dependency).


#3

Don’t activate video thumbnails! It’s a bug and no feature. It spawns a lot ffmpeg processes and will never finish them at all. It definitely kills your server and you have to restart the server.