Giter Site home page Giter Site logo

bbb-export's Introduction

bbb-export

This project is based on createwebinar/bbb-download. In the original project you are only able to see the presentation and the extracted audio. This project shows the presentation (Important! No wideboard functions besides zooming) and the webcams of all participants stacked up next it. The video height is now 1280 pixel, whereas the width is variable.

Requirements

  • python3
  • ffmpeg compiled with libx264 support

Usage

Specify in ffmpeg.py the variable FFMPEG with the location of ffmpeg. There is a precompiled version of ffmpeg in the folder ffmpeg.

python3 convert.py meeting_id

The video will be at the folder /var/bigbluebutton/published/presentation/<meeting_id>/output.mp4

bbb-export's People

Contributors

myomikron avatar techiexplorer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

bbb-export's Issues

Permission Deny while running convert.py

Running convert.py and using a pre-compiled version of FFmpeg defined in the Readme it shows and error

Error

bbb_version: 2.1.0
dictionary
{0.0: '/var/bigbluebutton/published/presentation/611a2ac8fe63f1c31d15c4003391cf310b2019b3-1596186703026/temp/presentation/d2d9a672040fbde2a47a10bf6c37b6a4b5ae187f-1596186704090/slide-1.png', 13.1: '/var/bigbluebutton/published/presentation/611a2ac8fe63f1c31d15c4003391cf310b2019b3-1596186703026/temp/presentation/deskshare.png'}
length
941.2
times
dict_keys([0.0, 13.1])
name
presentation
name
presentation
dims
{'presentation': (900, 1600)}
MAX Height:900
sh: 1: /home/ubuntu/bbb-export/ffmpeg: Permission denied
sh: 1: /home/ubuntu/bbb-export/ffmpeg: Permission denied
sh: 1: /home/ubuntu/bbb-export/ffmpeg: Permission denied
-=create_slideshow=-
<_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'> (1, 0, 0.0, 13.1)
sh: 1: /home/ubuntu/bbb-export/ffmpeg: Permission denied
<_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'> (0, 1, 13.1, 928.1)
sh: 1: /home/ubuntu/bbb-export/ffmpeg: Permission denied
sh: 1: /home/ubuntu/bbb-export/ffmpeg: Permission denied
sh: 1: /home/ubuntu/bbb-export/ffmpeg: Permission denied
sh: 1: /home/ubuntu/bbb-export/ffmpeg: Permission denied
sh: 1: /home/ubuntu/bbb-export/ffmpeg: Permission denied
sh: 1: /home/ubuntu/bbb-export/ffmpeg: Permission denied
sh: 1: /home/ubuntu/bbb-export/ffmpeg: Permission denied
sh: 1: /home/ubuntu/bbb-export/ffmpeg: Permission denied
<_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'> Cleaning up temp files...
<_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'> Done

ffmpeg.py

FFMPEG = '/home/ubuntu/bbb-export/ffmpeg/'

I have given 777 permission to all files inside the ffmpeg folder still no luck

I am new to python thanks!

Python3 issues in convert.py

The shipped convert.py fails to run out the box. There are two errors - in python3, dict.leys() returns an iterator, not a list, so it doesn't have a sort method (occurs twice). Also, set_logfile in ffmpeg.py is never called, so the various conversion scripts fail.

I used the following patch to get things working, although it's very much a quck hack.

  • Using sorted(dictionary.keys()) would be better than just converting to a list.
  • the logfile choice is arbitary, and should be replaced with something better - possibly updating the README to add an instruction to set it is a better approach.
--- a/convert.py
+++ b/convert.py
@@ -59,7 +59,7 @@ def create_slideshow(dictionary, length, result):
     video_list_fn = []
     f = open(video_list, 'w')
 
-    times = dictionary.keys()
+    times = list(dictionary.keys())
     times.sort()
 
     ffmpeg.webm_to_mp4(SOURCE_DESKSHARE, TMP_DESKSHARE_FILE)
@@ -114,7 +114,7 @@ def get_presentation_dims(presentation_name):
 
 
 def rescale_presentation(new_height, new_width, dictionary, bbb_version):
-    times = dictionary.keys()
+    times = list(dictionary.keys())
     times.sort()
     for i, t in enumerate(times):
         if i < 1 and '2.0.0' > bbb_version:
@@ -211,6 +211,8 @@ def main():
     bbb_version = bbbversion()
     print("bbb_version: " + bbb_version)
 
+    ffmpeg.set_logfile("ffmpeg.log")
+
     os.chdir(source_dir)
     dictionary, length, dims = prepare(bbb_version)
 

Issues with convert.py

> `Traceback (most recent call last):
>   File "convert.py", line 232, in <module>
>     main()
>   File "convert.py", line 211, in main
>     bbb_version = bbbversion()
>   File "convert.py", line 202, in bbbversion
>     s_events = minidom.parse(source_events)
>   File "/usr/lib/python3.5/xml/dom/minidom.py", line 1958, in parse
>     return expatbuilder.parse(file)
>   File "/usr/lib/python3.5/xml/dom/expatbuilder.py", line 910, in parse
>     with open(file, 'rb') as fp:
> FileNotFoundError: [Errno 2] No such file or directory: 
> '/var/bigbluebutton/recording/raw/126334d5d7e1ac6bcb63d16d80a9b31ff7c2b356-1589947838035/events.xml'`

I tried python3 convert.py meetingID, It throws me the above error, Even I have checked events.xml It's available in the same folder. Attached image for your reference.

I don't know what went wrong, please help me out.

image

convert.py gives an error.

Hello

Tried using this to convert a recording to mp4 after setting up the ffmpeg path and it gives the error below.

Please point me in the right direction.

bbb_version: 2.1.0
Traceback (most recent call last):
File "convert.py", line 232, in
main()
File "convert.py", line 215, in main
dictionary, length, dims = prepare(bbb_version)
File "convert.py", line 163, in prepare
dictionary, length = extract_timings(bbb_version)
File "convert.py", line 45, in extract_timings
temp = float(out_times[len(out_times) - 1])
ValueError: could not convert string to float:

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.