Apache OpenMeetings 5.0.0-M1 と 4.0.8 その3

前回に引き続き、 の設定編

今回は Ubuntu 編

Ubuntu は、OpenMeetings の説明にある手順で入れて行けば良いので、そんなに問題ないと思います

データベースは Apache Derby を使う予定なので、他のデータベースサーバーは特にチェックしていません

user@user:~$ convert --version
Version: ImageMagick 6.9.7-4 Q16 x86_64 20170114 http://www.imagemagick.org
Copyright: c 1999-2017 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP
Delegates (built-in): bzlib djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png tiff wmf x xml zlib
user@user:~$ ghostscript --version
9.26
user@user:~$ libreoffice --version
LibreOffice 6.0.7.3 00m0(Build:3)
user@user:~$ ffmpeg -version
ffmpeg version 3.4.6-0ubuntu0.18.04.1 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 7 (Ubuntu 7.3.0-16ubuntu3)
configuration: --prefix=/usr --extra-version=0ubuntu0.18.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --enable-gpl --disable-stripping --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librubberband --enable-librsvg --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libopencv --enable-libx264 --enable-shared
libavutil 55. 78.100 / 55. 78.100
libavcodec 57.107.100 / 57.107.100
libavformat 57. 83.100 / 57. 83.100
libavdevice 57. 10.100 / 57. 10.100
libavfilter 6.107.100 / 6.107.100
libavresample 3. 7. 0 / 3. 7. 0
libswscale 4. 8.100 / 4. 8.100
libswresample 2. 9.100 / 2. 9.100
libpostproc 54. 7.100 / 54. 7.100
user@user:~$ sox --version
sox: SoX v14.4.2
user@user:~$

インストール状況はこんな感じです

1.ImageMagick の設定

convert はポリシーの設定が必要で、変換できたりできなかったりします

policy.xml の設定でフォーマット毎の rights を none から read|write に変更しておきます

<!-- disable ghostscript format types -->
<policy domain="coder" rights="read|write" pattern="PS" />
<policy domain="coder" rights="read|write" pattern="EPI" />
<policy domain="coder" rights="read|write" pattern="PDF" />
<policy domain="coder" rights="read|write" pattern="XPS" />

2.インストール

基本的に、その2の Windows 版と同じ手順なので指定するパスだけ気を付ければ大丈夫
Linux 版はパスの指定は空欄のままでも進めるかな….

最終的に、こんな感じ

ImageMagick のパス:/usr/bin
FFMpeg のパス:/usr/bin
SoX のパス:/usr/bin
LibreOffice のパス:/usr/lib/libreoffice

これでイケる感じです

3.起動と確認

OpenMeetings 自体は何処に解凍しても良いので、今回はテスト用と言うことで、ユーザーのディレクトリに解凍してそのまま起動します
ただし、起動は sudo して実行しないと、所々でパーミッションエラーなどが起きるようです

sudo ./red5.sh とか、 sudo ./startup.sh とかですね

DEBUG 06-13 17:03:42.865 o.a.o.w.c.MainPanel:118 [0.0-5080-exec-8] - Sending WebSocket PING
DEBUG 06-13 17:03:42.869 o.a.o.c.u.WebSocketHelper:145 [.0-5080-exec-10] - Sending WebSocket message: {"type":"mic","id":"activity","uid":"334b579e-def2-4c34-815f-5706deed0fc4","active":false}
DEBUG 06-13 17:03:54.412 o.a.o.c.d.f.FileProcessor:71 [0.0-5080-exec-4] - file extension: pdf
Jun 13, 2019 5:03:54 PM org.apache.tika.config.InitializableProblemHandler$3 handleInitializableProblem
WARNING: J2KImageReader not loaded. JPEG2000 files will not be processed.
See https://pdfbox.apache.org/2.0/dependencies.html#jai-image-io
for optional dependencies.
 
WARN 06-13 17:03:54.841 o.a.t.p.PDFParser:69 [0.0-5080-exec-4] - J2KImageReader not loaded. JPEG2000 files will not be processed.
See https://pdfbox.apache.org/2.0/dependencies.html#jai-image-io
for optional dependencies.
 
Jun 13, 2019 5:03:54 PM org.apache.tika.config.InitializableProblemHandler$3 handleInitializableProblem
WARNING: org.xerial's sqlite-jdbc is not loaded.
Please provide the jar on your classpath to parse sqlite files.
See tika-parsers/pom.xml for the correct version.
WARN 06-13 17:03:54.918 o.a.t.p.SQLite3Parser:69 [0.0-5080-exec-4] - org.xerial's sqlite-jdbc is not loaded.
Please provide the jar on your classpath to parse sqlite files.
See tika-parsers/pom.xml for the correct version.
DEBUG 06-13 17:03:55.143 o.a.o.c.d.f.FileProcessor:75 [0.0-5080-exec-4] - isAsIs: false
DEBUG 06-13 17:03:55.144 o.a.o.c.d.f.FileProcessor:105 [0.0-5080-exec-4] - writing file to: /home/user/TTTT/webapps/openmeetings/upload/files/4059533e-aa65-4eb4-a792-3f4e342e5683/4059533e-aa65-4eb4-a792-3f4e342e5683.pdf
DEBUG 06-13 17:03:55.145 o.a.o.c.d.f.FileProcessor:112 [0.0-5080-exec-4] - Office document: /home/user/TTTT/webapps/openmeetings/upload/files/4059533e-aa65-4eb4-a792-3f4e342e5683/4059533e-aa65-4eb4-a792-3f4e342e5683.pdf
DEBUG 06-13 17:03:55.145 o.a.o.c.c.DocumentConverter:60 [0.0-5080-exec-4] - fullProcessing: false
DEBUG 06-13 17:03:55.146 o.a.o.c.c.DocumentConverter:68 [0.0-5080-exec-4] - -- generate page images --
DEBUG 06-13 17:03:55.146 o.a.o.c.c.ImageConverter:177 [0.0-5080-exec-4] - convertDocument
DEBUG 06-13 17:03:55.155 o.a.o.u.p.ProcessHelper:86 [0.0-5080-exec-4] - START convert PDF to images #################
DEBUG 06-13 17:03:55.155 o.a.o.u.p.ProcessHelper:87 [0.0-5080-exec-4] - /usr/bin/convert -density 300 /home/user/TTTT/webapps/openmeetings/upload/files/4059533e-aa65-4eb4-a792-3f4e342e5683/4059533e-aa65-4eb4-a792-3f4e342e5683.pdf -quality 100 /home/user/TTTT/webapps/openmeetings/upload/files/4059533e-aa65-4eb4-a792-3f4e342e5683/page-%04d.png
DEBUG 06-13 17:04:00.432 o.a.o.u.p.ProcessHelper:93 [0.0-5080-exec-4] - END convert PDF to images #################
DEBUG 06-13 17:04:00.521 o.a.o.c.d.f.FileProcessor:135 [0.0-5080-exec-4] - fileId: 101
DEBUG 06-13 17:04:00.522 o.a.o.c.d.f.FileProcessor:96 [0.0-5080-exec-4] - Clean up was successful ? true
DEBUG 06-13 17:04:00.561 o.a.o.d.d.f.FileItemDao:56 [0.0-5080-exec-4] - getByOwner() started
DEBUG 06-13 17:04:00.564 o.a.o.d.d.f.FileItemDao:51 [0.0-5080-exec-4] - getByRoom roomId :: 9
DEBUG 06-13 17:04:05.984 o.a.o.d.d.f.FileItemDao:56 [0.0-5080-exec-3] - getByOwner() started

これは、PDF の変換時のログで、ファイルをアップロードして、convert で変換してますね!

DEBUG 06-13 17:07:17.849 o.a.o.w.c.MainPanel:118 [0.0-5080-exec-7] - Sending WebSocket PING
DEBUG 06-13 17:07:31.691 o.a.o.c.d.f.FileProcessor:71 [0.0-5080-exec-3] - file extension: doc
DEBUG 06-13 17:07:31.800 o.a.o.c.d.f.FileProcessor:75 [0.0-5080-exec-3] - isAsIs: false
DEBUG 06-13 17:07:31.801 o.a.o.c.d.f.FileProcessor:105 [0.0-5080-exec-3] - writing file to: /home/user/TTTT/webapps/openmeetings/upload/files/90a95943-cf77-42d3-954f-53806d4b443d/90a95943-cf77-42d3-954f-53806d4b443d.doc
DEBUG 06-13 17:07:31.801 o.a.o.c.d.f.FileProcessor:112 [0.0-5080-exec-3] - Office document: /home/user/TTTT/webapps/openmeetings/upload/files/90a95943-cf77-42d3-954f-53806d4b443d/90a95943-cf77-42d3-954f-53806d4b443d.doc
DEBUG 06-13 17:07:31.802 o.a.o.c.c.DocumentConverter:60 [0.0-5080-exec-3] - fullProcessing: true
DEBUG 06-13 17:07:31.802 o.a.o.c.c.DocumentConverter:62 [0.0-5080-exec-3] - -- running JOD --
Jun 13, 2019 5:07:31 PM org.artofsolving.jodconverter.office.ProcessPoolOfficeManager
INFO: ProcessManager implementation is LinuxProcessManager
INFO 06-13 17:07:31.844 o.a.j.o.ProcessPoolOfficeManager:51 [0.0-5080-exec-3] - ProcessManager implementation is LinuxProcessManager
Jun 13, 2019 5:07:31 PM org.artofsolving.jodconverter.office.OfficeProcess start
INFO: starting process with acceptString 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1' and profileDir '/tmp/.jodconverter_socket_host-127.0.0.1_port-2002'
[INFO] [OfficeProcessThread-0] org.artofsolving.jodconverter.office.OfficeProcess - starting process with acceptString 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1' and profileDir '/tmp/.jodconverter_socket_host-127.0.0.1_port-2002'
Jun 13, 2019 5:07:31 PM org.artofsolving.jodconverter.office.OfficeProcess start
INFO: started process; pid = 3632
[INFO] [OfficeProcessThread-0] org.artofsolving.jodconverter.office.OfficeProcess - started process; pid = 3632
Jun 13, 2019 5:07:33 PM org.artofsolving.jodconverter.office.ManagedOfficeProcess$6 attempt
WARNING: office process died with exit code 81; restarting it
[WARN] [OfficeProcessThread-0] org.artofsolving.jodconverter.office.ManagedOfficeProcess - office process died with exit code 81; restarting it
Jun 13, 2019 5:07:33 PM org.artofsolving.jodconverter.office.OfficeProcess start
INFO: starting process with acceptString 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1' and profileDir '/tmp/.jodconverter_socket_host-127.0.0.1_port-2002'
[INFO] [OfficeProcessThread-0] org.artofsolving.jodconverter.office.OfficeProcess - starting process with acceptString 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1' and profileDir '/tmp/.jodconverter_socket_host-127.0.0.1_port-2002'
Jun 13, 2019 5:07:33 PM org.artofsolving.jodconverter.office.OfficeProcess start
INFO: started process; pid = 3643
[INFO] [OfficeProcessThread-0] org.artofsolving.jodconverter.office.OfficeProcess - started process; pid = 3643
Jun 13, 2019 5:07:34 PM org.artofsolving.jodconverter.office.OfficeConnection connect
INFO: connected: 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1'
[INFO] [OfficeProcessThread-0] org.artofsolving.jodconverter.office.OfficeConnection - connected: 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1'
Jun 13, 2019 5:07:36 PM org.artofsolving.jodconverter.office.ProcessPoolOfficeManager stop
INFO: stopping
INFO 06-13 17:07:36.556 o.a.j.o.ProcessPoolOfficeManager:82 [0.0-5080-exec-3] - stopping
Jun 13, 2019 5:07:36 PM org.artofsolving.jodconverter.office.OfficeConnection$1 disposing
INFO: disconnected: 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1'
[INFO] [MessageDispatcher] org.artofsolving.jodconverter.office.OfficeConnection - disconnected: 'socket,host=127.0.0.1,port=2002,tcpNoDelay=1'
Jun 13, 2019 5:07:36 PM org.artofsolving.jodconverter.office.ManagedOfficeProcess doEnsureProcessExited
INFO: process exited with code 0
[INFO] [OfficeProcessThread-0] org.artofsolving.jodconverter.office.ManagedOfficeProcess - process exited with code 0
Jun 13, 2019 5:07:36 PM org.artofsolving.jodconverter.office.ProcessPoolOfficeManager stop
INFO: stopped
INFO 06-13 17:07:36.867 o.a.j.o.ProcessPoolOfficeManager:87 [0.0-5080-exec-3] - stopped
DEBUG 06-13 17:07:36.868 o.a.o.c.c.DocumentConverter:68 [0.0-5080-exec-3] - -- generate page images --
DEBUG 06-13 17:07:36.868 o.a.o.c.c.ImageConverter:177 [0.0-5080-exec-3] - convertDocument
DEBUG 06-13 17:07:36.875 o.a.o.u.p.ProcessHelper:86 [0.0-5080-exec-3] - START convert PDF to images #################
DEBUG 06-13 17:07:36.875 o.a.o.u.p.ProcessHelper:87 [0.0-5080-exec-3] - /usr/bin/convert -density 300 /home/user/TTTT/webapps/openmeetings/upload/files/90a95943-cf77-42d3-954f-53806d4b443d/90a95943-cf77-42d3-954f-53806d4b443d.pdf -quality 100 /home/user/TTTT/webapps/openmeetings/upload/files/90a95943-cf77-42d3-954f-53806d4b443d/page-%04d.png
DEBUG 06-13 17:07:38.316 o.a.o.u.p.ProcessHelper:93 [0.0-5080-exec-3] - END convert PDF to images #################

これは、.doc ファイルを変換した時のログ

jodconverter が動いて処理してる感じが解りますね!

続いて、.xls を変換してみます

エラーが発生しています


エラーが発生すると、こんな感じで !が表示されます
クリックすると変換時のメッセージを表示しますので状況を確認することができます

Windows 編でもちょっと書きましたけど、ファイルが巨大すぎてエラーが発生するようです
Linux 版は止まらないでイケる感じでさすがですよね!

この他、変換時に soffice.bin を起動していないと変換できない場合があります

user@user:~$ sudo lsb_release -a
[sudo] password for user:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.2 LTS
Release: 18.04
Codename: bionic
user@user:~$

サーバーはこんな感じで、X Window を使っていませんので、MS Windows のように気軽に立ち上げることができません
そういう時は、こんな感じで動かすことができます

user@user:~$ cat soffice.sh
#!/bin/sh
 
soffice --headless --accept="socket,host=127.0.0.1,port=8100;urp;" --nofirststartwizard
user@user:~$

こんな感じのスクリプトファイルを用意して、sudo して起動します
これを red5.sh とかに先駆けて su で動かしておけば良いと思います

X が無いと初期化ウィザードが動かなくて途中で止まってしまうようです

別の X が動いてる環境から LibreOffice を動かして初期化だけしてみようと思ったんですけども、途中で落ちてしまって初期化を完了できませんでした

バナーの表示を止めて、初期化ウィザードを抑止して、ソケットの受付を許可すればイケるらしいです
ですが、JODConverter が入れてあれば自動的に動かしてくれるそうです

経験上、何度かこの起動スクリプトで soffice.bin を動かせれば、そのち JODConverter が soffice を起動してくれるようです
その時は、X の他の端末から起動できるようになっているようです
xhost + を忘れないように実行してからね!
でも、最初に su で起動してしまったからかもしれませんが、su しないと libreoffice が動かないようです
この辺の関連とか良い解決法が見付けられていません

宿題かな…

4.録画の確認

DEBUG 06-14 16:00:28.189 o.a.o.c.c.BaseConverter:201 [taskExecutor-5] - ### Stream now written:: recording id 207; stream with id 18; current status: STOPPED
DEBUG 06-14 16:00:28.189 o.a.o.c.c.BaseConverter:205 [taskExecutor-5] - ### Stream now written:: Flv file [/home/user/TTTT/webapps/openmeetings/streams/4/rec_207_stream_90d1f071-698e-4141-b404-0bff402d8e16_2019_06_14_15_43_03.flv] exists ? true; size: 630045200, lastModified: 1560495625687
DEBUG 06-14 16:00:28.189 o.a.o.c.c.BaseConverter:206 [taskExecutor-5] - ### Stream now written:: Ser file [/home/user/TTTT/webapps/openmeetings/streams/4/rec_207_stream_90d1f071-698e-4141-b404-0bff402d8e16_2019_06_14_15_43_03.flv.ser] exists ? false; size: 0, lastModified: 0
DEBUG 06-14 16:00:28.189 o.a.o.c.c.BaseConverter:223 [taskExecutor-5] - ### Thread continue ...
DEBUG 06-14 16:00:28.191 o.a.o.c.c.BaseConverter:270 [taskExecutor-5] - ### meta Data Number - 1
DEBUG 06-14 16:00:28.191 o.a.o.c.c.BaseConverter:271 [taskExecutor-5] - ###################################################
DEBUG 06-14 16:00:28.191 o.a.o.c.c.BaseConverter:275 [taskExecutor-5] - ### processing metadata: 19
DEBUG 06-14 16:00:28.192 o.a.o.c.c.BaseConverter:287 [taskExecutor-5] - FLV File Name: rec_207_stream_A9C85D02-136B-4B79-10D7-548BB6553A46_2019_06_14_15_43_03.flv Length: 189
DEBUG 06-14 16:00:28.193 o.a.o.u.p.ProcessHelper:86 [taskExecutor-5] - START stripAudioFromFLVs #################
DEBUG 06-14 16:00:28.194 o.a.o.u.p.ProcessHelper:87 [taskExecutor-5] - /usr/bin/ffmpeg -y -i /home/user/TTTT/webapps/openmeetings/streams/4/rec_207_stream_A9C85D02-136B-4B79-10D7-548BB6553A46_2019_06_14_15_43_03.flv -af aresample=32k:min_comp=0.001:min_hard_comp=0.100000 /home/user/TTTT/webapps/openmeetings/streams/4/rec_207_stream_A9C85D02-136B-4B79-10D7-548BB6553A46_2019_06_14_15_43_03_WAVE.wav
DEBUG 06-14 16:00:28.260 o.a.o.u.p.ProcessHelper:93 [taskExecutor-5] - END stripAudioFromFLVs #################
DEBUG 06-14 16:00:28.262 o.a.o.d.d.r.RecordingMetaDataDao:108 [taskExecutor-5] - [update]:
DEBUG 06-14 16:00:28.307 o.a.o.u.p.ProcessHelper:86 [taskExecutor-5] - START generateSampleAudio #################
DEBUG 06-14 16:00:28.307 o.a.o.u.p.ProcessHelper:87 [taskExecutor-5] - /usr/bin/sox /home/user/TTTT/webapps/openmeetings/streams/hibernate/one_second.wav /home/user/TTTT/webapps/openmeetings/streams/4/rec_207_stream_90d1f071-698e-4141-b404-0bff402d8e16_2019_06_14_15_43_03_FINAL_WAVE.wav pad 0 1040.157
DEBUG 06-14 16:00:28.529 o.a.o.u.p.ProcessHelper:93 [taskExecutor-5] - END generateSampleAudio #################
DEBUG 06-14 16:00:28.530 o.a.o.d.d.r.RecordingMetaDataDao:108 [taskExecutor-5] - [update]:
DEBUG 06-14 16:00:28.572 o.a.o.c.c.RecordingConverter:105 [taskExecutor-5] - flvWidth -1- 960
DEBUG 06-14 16:00:28.572 o.a.o.c.c.RecordingConverter:106 [taskExecutor-5] - flvHeight -1- 768
DEBUG 06-14 16:00:28.573 o.a.o.c.c.RecordingConverter:111 [taskExecutor-5] - flvWidth -2- 960
DEBUG 06-14 16:00:28.573 o.a.o.c.c.RecordingConverter:112 [taskExecutor-5] - flvHeight -2- 768
DEBUG 06-14 16:00:28.574 o.a.o.u.p.ProcessHelper:86 [taskExecutor-5] - START generate MP4 #################
DEBUG 06-14 16:00:28.575 o.a.o.u.p.ProcessHelper:87 [taskExecutor-5] - /usr/bin/ffmpeg -y -itsoffset 00:00:03.176 -i /home/user/TTTT/webapps/openmeetings/streams/4/rec_207_stream_90d1f071-698e-4141-b404-0bff402d8e16_2019_06_14_15_43_03.flv -i /home/user/TTTT/webapps/openmeetings/streams/4/rec_207_stream_90d1f071-698e-4141-b404-0bff402d8e16_2019_06_14_15_43_03_FINAL_WAVE.wav -c:v h264 -crf 24 -pix_fmt yuv420p -preset medium -profile:v baseline -level 3.0 -movflags faststart -c:a aac -ar 22050 -b:a 32k -s 960x768 /home/user/TTTT/webapps/openmeetings/streams/hibernate/3a625aa9-d135-449a-b708-136d06d6c186.mp4

これは、録画し終わった時のログ
SoX と FFMPeg が動いている様子

ただ、IcedTea Web が日本語にならない件と、音声が録音されない感じがする..
多分、IcedTea Web の設定なんだと思う
サーバーに保存されているファイルに WAV ファイルがあるけれど、無音のままだね..
WAV だから無音でも結経な容量を使ってしまう….

Flash 版で録画したんだけど、二〇分くらいならたいした負荷もかからず問題なく録画できました
一応、四台カメラ付きで試してみました

続きは、雑記です

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です