ビデオクリップ生成されたGIF形式(PHPのPythonのプラグインプログラム)パーフェクト!

友人は友人がPHPをやっている必要があります受信、PHPのニーズがGIFを生成して、私が対処する助けてみましょう。ビブラートに似た彼のプロジェクトは、インターフェイスから表示される短いビデオは、完全なビデオに、その後のgifアクションフィギュアで、と。

私は、需要のGIFああを生成するPHPをやったことがないだろうと思っていました。しかし、ああ行うことができますPythonは、コードの唯一の4行が得ることができるようになり、フルカウントを果たしました。私はなぜ私は彼にプラグインを書いていません

ここでは、このパッケージをmoviepy使用しました。

1. moviepyをインストールします。

  moviepyをインストールするPIP

2.プログラムが開始書きます。

  彼のサーバー上で、私はすぐに良いピップPythonと環境と。

  

!#USR / binに/ envをPythonの
# - * -コーディング:UTF-8 _ * - 
"" " 
@author:Hurrican 
@file:gif.py 
@time:2019年6月22日午前21時33 

" "" 
インポートSYS 
インポートMPYのmoviepy.editor AS 

sys.argvの= [1] imge_url 
!= IF imge_url '':
	
	'' '処理パススタート' '' 
	作品を... = imge_url.split( '/')[ - 2:] 
	パス= '/'。 (作品...)参加
	パスpath.replace =( 'MP4' 、'。GIF ')

	のdirname = 'を/ usr / share / nginxの/ HTML / KY /データ/アップロード/' +パス
	'' '' '処理経路'末端
	試す:
		ビデオファイル#1のローカルパス
		コンテンツ= mpy.VideoFileClip(imge_url) クリップセグメント0 0秒秒〜1。注:サイズ変更は、定義変更されません使用しないでください
		C1 =コンテンツを。
	除くEインクルードAS例外:
		印刷(E)
		
他:
	印刷(「システムエラー」)

  私は上記のPythonコードを書きました。

あなたは気づいているかもしれません。、sys.argvの[1]は、実際には、これは、PHPからパラメータに対する私のパスです。

あなたの隣に展開します。

  SYSモジュールの導入。第1のパラメータPHPの上を通過するテーブルでsy.argv [1]

以下は、私が撮影した断片のコードPHPであり、

PHPコード

<?phpの

// + -------------------------------------------- -------------------------- 
// | YFCMF [我々はそれによりシンプルを行うことができます] 
// + -------------------------------------- -------------------------------- 
// | 著作権(C)2015から2016 http://www.rainfer.cnすべての権利を保有。
// + ----------------------------------------------- ----------------------- 
// | 著者:rainfer <[email protected]> 
// + ------------------------------------- --------------------------------- 
名前空間のアプリ\ホーム\コントローラ。

キャッシュ\考えて使用します。
\ Dbと思い使用します。
\キャプチャ\のキャプチャを考えて使用します。
クラスインデックスは、ベースを拡張{ 
    パブリック関数インデックス(){ 
        をset_time_limit(0);
      
        $ニュース= DB ::名前( 'ニュース') - >オーダー( "news_time ASC") - >フィールド( 'n_id、news_title、news_time、news_content、news_hits、member_list_id、news_hits、zan_num') - >()を選択します。
        $データ= [ 
            'ニュース' => $のニュース、
        ]; 
################################################## #######外挂开始######################################### ################# 
        ($キー=> $値として$データ[ 'ニュース'])のforeach { 
            #コード... 
            $ img_url = $値[ 'news_content'] ; 
            
           もし($のimg_url = ''!){ 
                 $順= "パイソン" .getcwd() "/アプリ/ホーム/コントローラ/ gif.py {$のimg_url}"。
            
                 $データ=はshell_exec($順)。
          // // $結果= EXEC( 'は/ usr / binに/パイソン/usr/share/nginx/html/KY/app/home/controller/gif.py {$のimg_url}')。
                 //#写日志文件
                ますfile_put_contents(dirnameは(__ FILEの__) '/ log.txtという'、$データ'\ rを\ n'は、FILE_APPEND。。); 
           } 
            

        }

################################################## #######プラグ端######################################### #################

//エコー'<前>';
//ますprint_r($データ);死にます;
返します$ this->表示- >フェッチ( ':インデックス');
}


  

私はpyhonと対話するPHPコードを特定するだろうかの真ん中を差し込みます。

ここで私はPHPのはshell_exec関数を使用し、それが唯一の1つの行の結果を返すことができるので、execが理由ではありません。すべての結果を返すためにはshell_exec。GETCWDは()関数はPHPで、ロゴは、現在の作業ディレクトリを返します。

パイソン二重引用符だけでなく、ああスペースを残すことを忘れないでください。その後、結果をプリントアウトすることができます。そして、ライン上のログファイル内のPHPプロジェクトを追加します。

成功の後、我々は、ログファイルを見て次のようになります。

 

 ここでの作業ディレクトリです。TPフレームYFCMFの使用。しかし、我々は777を与えるために注意を払う必要があります(644ではないと思われる、テストが失敗した)、またはログファイルを書き込むことはできません。

 

 

おすすめ

転載: www.cnblogs.com/wujf-myblog/p/11082786.html