résolu. http://qiita.com/tf_qiita/items/60d6d21ffb23656949d2
Lorsque le fichier vidéo a été placé dans S3, j'ai lancé Python sur EC2 avec Lambda et Je faisais un programme qui démarre ffmpeg via ffmpy et traite des vidéos. Je ne peux pas importer ffmpy normalement, donc je l'écrirai dans le partage d'informations lorsqu'il sera résolu.
Le code d'exécution se trouve sous le répertoire personnel d'ec2-user comme indiqué ci-dessous.
/home/ec2-user/hoge/
├── MAIN1_KICKED_BY_LAMBDA.py #Méthode principale
├── fuga
│ └── hogefuga.py #Module d'édition vidéo
...
Les paramètres suivants ont été définis pour l'utilisateur root.
pip install ffmpy
--Installez ffmpeg (script ci-dessous)ffmpegcpl.sh
#!/bin/sh
sudo yum -y install autoconf automake cmake freetype-devel gcc gcc-c++ git libtool make mercurial nasm pkgconfig zlib-devel
mkdir ~/ffmpeg_sources
#Yasm
cd ~/ffmpeg_sources
git clone --depth 1 git://github.com/yasm/yasm.git
cd yasm
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install
make distclean
#libx264
cd ~/ffmpeg_sources
git clone --depth 1 git://git.videolan.org/x264
cd x264
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
make
make install
make distclean
#libx265
cd ~/ffmpeg_sources
hg clone https://bitbucket.org/multicoreware/x265
cd ~/ffmpeg_sources/x265/build/linux
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
make
make install
#libfdk_aac
cd ~/ffmpeg_sources
git clone --depth 1 git://git.code.sf.net/p/opencore-amr/fdk-aac
cd fdk-aac
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean
#libmp3lame
cd ~/ffmpeg_sources
curl -L -O http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz
tar xzvf lame-3.99.5.tar.gz
cd lame-3.99.5
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm
make
make install
make distclean
#libopus
cd ~/ffmpeg_sources
git clone http://git.opus-codec.org/opus.git
cd opus
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean
#libogg
cd ~/ffmpeg_sources
curl -O http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.gz
tar xzvf libogg-1.3.2.tar.gz
cd libogg-1.3.2
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean
#libvorbis
cd ~/ffmpeg_sources
curl -O http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.4.tar.gz
tar xzvf libvorbis-1.3.4.tar.gz
cd libvorbis-1.3.4
LDFLAGS="-L$HOME/ffmeg_build/lib" CPPFLAGS="-I$HOME/ffmpeg_build/include" ./configure --prefix="$HOME/ffmpeg_build" --with-ogg="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean
#libvpx
cd ~/ffmpeg_sources
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git
cd libvpx
./configure --prefix="$HOME/ffmpeg_build" --disable-examples
make
make install
make clean
#FFmpeg
cd ~/ffmpeg_sources
git clone http://source.ffmpeg.org/git/ffmpeg.git
cd ffmpeg
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --pkg-config-flags="--static" --enable-gpl --enable-nonfree --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265
make
make install
make distclean
hash -r
Veuillez vous abstenir de publier le code à exécuter. .. .. Le journal lorsqu'il est exécuté à partir de Lambda est le suivant, et il semble qu'il soit supprimé en regardant pyenv (inexistant) de ec2-user.
Traceback (most recent call last):
File "/home/ec2-user/hoge/MAIN1_KICKED_BY_LAMBDA.py", line 88, in <module>
hogefuga.exeExtractWav(TMP_DIRECTORY2 + '/', nameonly)
File "/home/ec2-user/hoge/fuga/hogefuga.py", line 175, in exeExtractWav
extractWav(filename)
File "/home/ec2-user/hoge/fuga/hogefuga.py", line 162, in extractWav
ff.run()
File "/home/ec2-user/.pyenv/versions/anaconda3-4.3.1/lib/python3.6/site-packages/ffmpy.py", line 99, in run
raise FFExecutableNotFoundError("Executable '{0}' not found".format(self.executable))
ffmpy.FFExecutableNotFoundError: Executable 'ffmpeg' not found
Lorsque je me connecte avec SSH et que je l'exécute directement en tant que root, je vais voir pyenv du côté racine et il s'exécute sans problème. Y a-t-il les deux solutions suivantes?
--Construisez également les environnements pyenv et ffmpeg dans l'environnement ec2-user.
En premier lieu, il ne sera actualisé que si la cause du changement de chemin entre l'exécution directe et l'exécution Lambda est clarifiée.
(23/05/2017 17:12 postscript)
--Construisez également les environnements pyenv et ffmpeg dans l'environnement ec2-user.
J'ai essayé les deux, mais je me suis retrouvé avec l'erreur suivante.
----------ERROR-------
failed to run commands: exit status 1
Traceback (most recent call last):
File "MAIN1_KICKED_BY_LAMBDA.py", line 17, in <module>
import formatchg
File "/root/fuga/hoge/fugahoge.py", line 10, in <module>
from ffmpy import FFmpeg
ImportError: No module named ffmpy