Edited at

mayaからffmpegを使ってmp4を書き出し


準備

1. ffmpegをダウンロードします。


【windows】FFmpegをインストールする手順

https://fukatsu.tech/windows-ffmpeg


上記のページを参考にffmpegをダウンロードして環境変数の設定まで行います。

2. ffmpeg-pythonのインストール

pip install ffmpeg-python

pipを使ってpython用のffmpegのライブラリのffmpeg-pythonをインストールします。


Mayaでのパッケージ管理 - mayapyにpipを入れてみるよ

https://qiita.com/it_ks/items/664f56d5e203ec005ca4


pipの導入の仕方は上記を見て頂ければ


実行

mayaで下記のコードを実行するとプレイブラストが非圧縮のAVIで書き出され、そのAVIを即mp4に変換します。

AVIのほうはmp4への変換が終わったら自動で削除されます。

# -*- coding: utf-8 -*-


import maya.cmds as cmds
import ffmpeg
import os

# 書き出し先の指定
mp4 = "D:/test.mp4"
avi = mp4.replace("mp4", "avi")
# プレイブラストの書き出し
cmds.playblast(fp=4, offScreen=1,
clearCache=1, format='avi', sequenceTime=0,
showOrnaments=0, percent=100,
filename=avi, viewer=0,
compression="None", quality=100, widthHeight=(500, 500),
fo=1)
# ffmpegを使ってAVIをmp4に変換
stream = ffmpeg.input(avi)
stream = ffmpeg.output(stream, mp4, pix_fmt='yuv420p', vcodec='libx264')
stream = ffmpeg.overwrite_output(stream)
ffmpeg.run(stream)
# AVIを削除
os.remove(avi)


エラー

自分の環境だとffmpeg読み込み時に以下のようなエラーが出ました。

2019-11-08_17h39_29.png

どうやらpython27.zipのlib2to3以下にあるファイルが開けない(解凍できない?)のが原因のようです。

pythonのgithubからlib2to3をダウンロードできるようなので、それをダウンロードして

C:\Program Files\Autodesk\Mayaのバージョン\Python\Lib\site-packages

に移したら動くようになりました。