igoltz / babelium-zf2 Goto Github PK
View Code? Open in Web Editor NEWThis project forked from elurnet/babelium-zf2
Babelium Project (api V3)
License: BSD 3-Clause "New" or "Revised" License
This project forked from elurnet/babelium-zf2
Babelium Project (api V3)
License: BSD 3-Clause "New" or "Revised" License
Media does not play in Safari/iOS as these are reported not to play mp3 audio.
Audio should be encoded with AAC.
If the input wav is not found the task should be marked finished. As of now such is kept forever and fills the task queue.
This is an issue that exists after the Babelium downgrade was implemented on lernen.goethe.de.
There are Babelium assignments that use more than one recording role. In the Babelium backend it is configured which recording section belongs to which role.
When starting an attempt, first a role is chosen. Only in recording sections of this role recordings can be made. This means that if there are recording sections for other roles in the video, no recordings are allowed for them - they should not be displayed as recording sections and the video should be played normally for these.
This is not working. Regardless of which role is selected, the recording sections for all roles are displayed in an attempt and recordings can be made for any role.
Depending on the selected role, only recording sections of this role must be displayed.
Example: https://lernen.goethe.de/moodle/mod/assign/view.php?id=45967829
According to a dev, the api endpoint does not deliver correct roles.
conversion tasks need locking as they are not synchronized and would clash with each other
It seems that in text that is coming from the Babelium backend, umlauts are not taken over.
Example: https://lernen.goethe.de/moodle/mod/assign/view.php?id=45988409
The Role "GesprächspartnerIn" is displayed as "GesprchspartnerIn". The text "Bitte wählen Sie aus und sprechen Sie." is displayed as "Bitte whlen Sie aus und sprechen Sie."
This needs to be corrected. I checked the Babelium backend and there the text seems to be correct, so I assume there is an issue with taking the text from Babelium and displaying it on Moodle.
The Babelium Video "DO B1 4-3-13" has the following issue:
In the Babelium backend the second half is configured as recording section. In Moodle though, only the last tiny bit is displayed as recording section.
This needs to be corrected so that Moodle uses the same configuration for recording sections like the one that was set up in the Babelium backend.
DO B1 4-3-13
https://lernen.goethe.de/moodle/mod/assign/view.php?id=45969233
https://babelium.goethe.de/#/exercises/view/MqwF0bkyinl
According to the webservice response call, the recording window that Moodle gets has the following time:
[{"id":0,"showTime":110.97,"hideTime":111.47,"text":"Bitte sprechen Sie jetzt.","exerciseRoleName":"Felipa","subtitleId":"217","exerciseRoleId":1}]
This does not reflect how it is configured in the Babelium backend.
It is assumed that this is caused by the backend configuration where the recording widow might end with (or even after?) the video. However, I don't think it's the case. In the next example the issue is the same but the video does not end with a recording window in the end. Also, the issue is the start time, not the end time (see screenshots).
The same is happening with the Video "DO 5.3.8". There are 15 recording sections and the last one is cut off (see screenshot). In the Babelium backend the section is not cut off.
DO 5.3.8
https://lernen.goethe.de/moodle/mod/assign/view.php?id=46085699
https://babelium.goethe.de/#/exercises/view/12gEhuId4Gs
According to the webservice response call, the recording window that Moodle gets has the following time:
[{"id":0, "showTime":22.58, "hideTime":27.06, "text":"Bitte sprechen Sie jetzt.", "exerciseRoleName":"Aufnehmen", "subtitleId":"52", "exerciseRoleId":1}, {"id":1, "showTime":32.66, "hideTime":38.45, "text":"Bitte sprechen Sie jetzt.", "exerciseRoleName":"Aufnehmen", "subtitleId":"52", "exerciseRoleId":1}, {"id":2, "showTime":50.49, "hideTime":56.86, "text":"Bitte sprechen Sie jetzt.", "exerciseRoleName":"Aufnehmen", "subtitleId":"52", "exerciseRoleId":1}, {"id":3, "showTime":61.86, "hideTime":68.39, "text":"Bitte sprechen Sie jetzt.", "exerciseRoleName":"Aufnehmen", "subtitleId":"52", "exerciseRoleId":1}, {"id":4, "showTime":75.28, "hideTime":83.69, "text":"Bitte sprechen Sie jetzt.", "exerciseRoleName":"Aufnehmen", "subtitleId":"52", "exerciseRoleId":1}, {"id":5, "showTime":98.31, "hideTime":104.44, "text":"Bitte sprechen Sie jetzt.", "exerciseRoleName":"Aufnehmen", "subtitleId":"52", "exerciseRoleId":1}, {"id":6, "showTime":111.23, "hideTime":116.91, "text":"Bitte sprechen Sie jetzt.", "exerciseRoleName":"Aufnehmen", "subtitleId":"52", "exerciseRoleId":1}, {"id":7, "showTime":128.26, "hideTime":134.51, "text":"Bitte sprechen Sie jetzt.", "exerciseRoleName":"Aufnehmen", "subtitleId":"52", "exerciseRoleId":1}, {"id":8, "showTime":140.26, "hideTime":146.03, "text":"Bitte sprechen Sie jetzt.", "exerciseRoleName":"Aufnehmen", "subtitleId":"52", "exerciseRoleId":1}, {"id":9, "showTime":153.38, "hideTime":158.06, "text":"Bitte sprechen Sie jetzt.", "exerciseRoleName":"Aufnehmen", "subtitleId":"52", "exerciseRoleId":1}, {"id":10, "showTime":176.88, "hideTime":187.41, "text":"Bitte sprechen Sie jetzt.", "exerciseRoleName":"Aufnehmen", "subtitleId":"52", "exerciseRoleId":1}, {"id":11, "showTime":192.98, "hideTime":204.32, "text":"Bitte sprechen Sie jetzt.", "exerciseRoleName":"Aufnehmen", "subtitleId":"52", "exerciseRoleId":1}, {"id":12, "showTime":209.85, "hideTime":216.09, "text":"Bitte sprechen Sie jetzt.", "exerciseRoleName":"Aufnehmen", "subtitleId":"52", "exerciseRoleId":1}, {"id":13, "showTime":220.87, "hideTime":228.91, "text":"Bitte sprechen Sie jetzt.", "exerciseRoleName":"Aufnehmen", "subtitleId":"52", "exerciseRoleId":1}, {"id":14, "showTime":234.83, "hideTime":235.33, "text":"Bitte sprechen Sie jetzt.", "exerciseRoleName":"Aufnehmen", "subtitleId":"52", "exerciseRoleId":1}]
Note: I tried if editing subtitles and saving them in the backend whould change the display on Moodle, but it did not. It seems that always the first subtitle version is loaded when adding
submitted, probably empty response (only 44 bytes file) troubles ffmpeg. Process eats up 100% cpu on babelium server (invoked from babelium:convert:response task) and don't stop.
Ejecutando cmd [/usr/bin/ffmpeg -i /tmp/641_mutted.mp4 -i /var/www.babelium.goethe.de/streams/api3/response/1/2/0/2/8/120287/120287.wav -filter_complex 'amix=inputs=2' -c:a libmp3lame -q:a 4 -shortest -strict -2 -f mp4 /var/www.babelium.goethe.de/streams/api3/response/1/2/0/2/8/120287/120287.mp4]ffmpeg version 3.4.2-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2018 the FFmpeg developers built with gcc 6.3.0 (Debian 6.3.0-18) 20170516 configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libfribidi --enable-libass --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg 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 libswscale 4. 8.100 / 4. 8.100 libswresample 2. 9.100 / 2. 9.100 libpostproc 54. 7.100 / 54. 7.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/tmp/641_mutted.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf57.83.100 Duration: 00:02:26.93, start: 0.000000, bitrate: 595 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 854x480 [SAR 1:1 DAR 427:240], 460 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(deu): Audio: mp3 (mp4a / 0x6134706D), 48000 Hz, stereo, s16p, 128 kb/s (default) Metadata: handler_name : SoundHandler [wav @ 0x5296ac0] Cannot check for SPDIF Guessed Channel Layout for Input Stream #1.0 : mono Input #1, wav, from '/var/www.babelium.goethe.de/streams/api3/response/1/2/0/2/8/120287/120287.wav': Duration: N/A, bitrate: 1411 kb/s Stream #1:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, mono, s16, 705 kb/s Stream mapping: Stream #0:1 (mp3) -> amix:input0 (graph 0) Stream #1:0 (pcm_s16le) -> amix:input1 (graph 0) amix (graph 0) -> Stream #0:0 (libmp3lame) Stream #0:0 -> #0:1 (h264 (native) -> h264 (libx264)) Press [q] to stop, [?] for help [libx264 @ 0x5370120] using SAR=1/1 [libx264 @ 0x5370120] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX [libx264 @ 0x5370120] profile High, level 3.1 [libx264 @ 0x5370120] 264 - core 155 r2901 7d0ff22 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=3 lookahead_threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 frame= 1 fps=0.0 q=0.0 size= 0kB time=-577014:32:22.77 bitrate= -0.0kbits/s speed=N/A
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.