Coder Social home page Coder Social logo

kagami / boram Goto Github PK

View Code? Open in Web Editor NEW
433.0 21.0 30.0 3.46 MB

:film_strip: Cross-platform graphical WebM converter

Home Page: https://github.com/Kagami/boram/releases

JavaScript 91.89% HTML 0.11% Python 1.12% C++ 6.12% C 0.09% Shell 0.68%
ffmpeg mpv youtube-dl cross-platform webm electron av1

boram's People

Contributors

dependabot[bot] avatar emyarod avatar kagami avatar netopwibby avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

boram's Issues

Unknown encoder 'libvorbis'

On MacOS Mojave:

ffmpeg -hide_banner -nostdin -y -i file:/Users/zealotux/Downloads/Isolation.mp4 -map 0:v:0 -map 0:a:0 -threads 8 -c:v libvpx -speed 0 -b:v 376k -auto-alt-ref 1 -lag-in-frames 25 -g 128 -pix_fmt yuv420p -vf scale=600:338,setsar=1 -c:a libvorbis -q:a 4 -f webm -pass 2 -passlogfile /var/folders/p1/4k_h9jb17z55r47d2nkxb6x00000gn/T/boram-4216YiZcGo7AmAtu -metadata title=Isolation file:/Users/zealotux/Desktop/Isolation.webm Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'file:/Users/zealotux/Downloads/Isolation.mp4'

Checking with brew info ffmpeg it appears libvorbis is installed, however I have an error Unknown encoder 'libvorbis' during encoding.

build failed

I got some build errors after I try to "npm install". Is there anything else prior to this step? Thanks.

CXX(target) Release/obj.target/boram/src/mpv/interop.o
../src/mpv/interop.cc:8:10: fatal error: 'GLES2/gl2.h' file not found
#include <GLES2/gl2.h>
^
1 error generated.
make: *** [Release/obj.target/boram/src/mpv/interop.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: make failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/Users/liaowei/.nvm/versions/node/v8.6.0/lib/node_modules/cnpm/node_modules/node-gyp/lib/build.js:258:23)
gyp ERR! stack at emitTwo (events.js:125:13)
gyp ERR! stack at ChildProcess.emit (events.js:213:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Darwin 16.5.0
gyp ERR! command "/Users/liaowei/.nvm/versions/node/v8.6.0/bin/node" "/Users/liaowei/.nvm/versions/node/v8.6.0/lib/node_modules/cnpm/node_modules/npminstall/node-gyp-bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/liaowei/temp/boram
gyp ERR! node -v v8.6.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
✖ Install fail! Error: Run "sh -c node-gyp rebuild" error, exit code 1
Error: Run "sh -c node-gyp rebuild" error, exit code 1
at ChildProcess.proc.on.code (/Users/liaowei/.nvm/versions/node/v8.6.0/lib/node_modules/cnpm/node_modules/runscript/index.js:74:21)
at emitTwo (events.js:125:13)
at ChildProcess.emit (events.js:213:7)
at maybeClose (internal/child_process.js:927:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
npminstall version: 3.1.4
npminstall args: /Users/liaowei/.nvm/versions/node/v8.6.0/bin/node /Users/liaowei/.nvm/versions/node/v8.6.0/lib/node_modules/cnpm/node_modules/npminstall/bin/install.js --china --userconfig=/Users/liaowei/.cnpmrc --disturl=https://npm.taobao.org/mirrors/node --registry=http://registry.npm.taobao.org

Build 64-bit NaCl SDK for Windows

Google doesn't provide this but should be possible to build manually. It currently prevents making true 64-bit build for Windows.

How can I get alpha channel?

Hello there!

Thank you so much for this incredible program! Really love it!. My problem is about getting alpha channel. I get always black screen.... Please I need your help!

Thank you very much!

Failed to build on Windows because of unescaped character

On Windows, npm run app would return

ModuleParseError: Module parse failed: C:\projects\boram\src\index\renderer.js Unexpected character '@' (18:0)
You may need an appropriate loader to handle this file type.

Because return new RegExp("^" + path.join(__dirname, ...parts) + "$"); returned something like ^c:\projects\boram\src\.+\.js$ which isn't a correct RegEx, so webpack (babel-loader) can't resolve correct path of .js and font-awesome .css files.

A simple block like

{
  test: /\.js$/,
  loader: "babel",
  include: path.join(__dirname, "src"),
},

could solve the problem, though it'd make the intree function unused.

no libmpv

mpv installed.
Mint 18.2
copied to /opt/boram/*
Symlink to /usr/bin/boram
Result:

2017-08-29-195521_512x224_scrot

Use angle GPU context

Right now ANGLE backend is disabled in custom mpv build because it requires d3dcompiler_47.dll, libEGL.dll and libGLESv2.dll which weight 2.5M compressed. Also it takes more time to start mpv with that backend, at least in VM.

But @wiiaboo mentioned that win backend doesn't always work good (current default in boram), so it's probably worth to enable it again. In order to avoid library duplications, it should be possible to add top-level electron's directory to the DLL PATH or something like that (Electron uses exactly same DLLs for its OpenGL rendering).

Enable vp9 highbitdepth

Can you enable by default vp9 highbitdepth, for using profile 2 (10-bit) ?

You create a great GUI, better than handbrake and staxrip

Build libaom with CONFIG_LOWBITDEPTH=1

See: https://bugs.chromium.org/p/aomedia/issues/detail?id=2062 and https://forum.doom9.org/showpost.php?p=1852393&postcount=995

CONFIG_LOWBITDEPTH=0 (default)

$ time aomenc blue_sky_360p_60f.y4m -o 1.webm --limit=10 --passes=1 --cpu-used=4 --end-usage=q --cq-level=25 --tile-columns=3 --threads=8
Pass 1/1 frame   10/0          0B   24451 us 408.98 fps [ETA  unknown]   61757F  20751F   3881F   2584F   5778F   1704F   2248F
Pass 1/1 frame   10/10    102194B   81755b/f 2043875b/s   23731 ms (0.42 fps)
224% cpu 23.931 total

CONFIG_LOWBITDEPTH=1

$ time aomenc blue_sky_360p_60f.y4m -o 2.webm --limit=10 --passes=1 --cpu-used=4 --end-usage=q --cq-level=25 --tile-columns=3 --threads=8
Pass 1/1 frame   10/0          0B   12706 us 787.03 fps [ETA  unknown]   61757F  20751F   3881F   2584F   5778F   1704F   2248F
Pass 1/1 frame   10/10    102194B   81755b/f 2043875b/s   15530 ms (0.64 fps)
238% cpu 15.725 total

Cannot convert/download youtube link

Seems not strictly Boram issue but cannot download link

But got strange unresolvable youtube-dl or python
2017-01-12-023015_1283x976_scrot
error. May be alternative download engine?:

youtube-dl exited with code 1 (WARNING: video doesn't have subtitles ERROR: Signature extraction failed: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/youtube_dl/extractor/youtube.py", line 1005, in _decrypt_signature video_id, player_url, s File "/usr/lib/python3/dist-packages/youtube_dl/extractor/youtube.py", line 932, in _extract_signature_function cache_res = res(test_string) File "/usr/lib/python3/dist-packages/youtube_dl/extractor/youtube.py", line 984, in return lambda s: initial_function([s]) File "/usr/lib/python3/dist-packages/youtube_dl/jsinterp.py", line 254, in resf res, abort = self.interpret_statement(stmt, local_vars) File "/usr/lib/python3/dist-packages/youtube_dl/jsinterp.py", line 55, in interpret_statement v = self.interpret_expression(expr, local_vars, allow_recursion) File "/usr/lib/python3/dist-packages/youtube_dl/jsinterp.py", line 174, in interpret_expression return objmember KeyError: 'qC' (caused by KeyError('qC',)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see https://yt-dl.org/update on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.)

mpv playback performance, hwdec

Right now CPU usage is rather high. Need to try to activate hwdec (at least on some platforms or add UI control) and check whether it's possible to improve performance in some way.

No video preview after release 0.4.0

After dragging a video on the boram instead of video preview I get an error: "Failed to load plugin". Encoding still works fine.
It works fine with 0.3.7.
I wish I could give more details, but there is no output on the stdout/stderr. Suggestions how to debug the problem are welcome too.

Platform: Arch Linux
mpv version: 0.29.0

AV1 bug

AV1 on my pc 40% bug freezes with lots of RAM usage
av1bug

Video codec 'copy'

It would be nice to have 'copy' codec for video, just like we already have for audio.
That would be useful when downloading videos from youtube.

macOS build

Any plans regarding making boram work for macOS?

Cheers!

Bountysource

Fail to start on ubunt, ld

Common, why you use own checklib implementation and why not ldconfig? I install libmpvt but still cannot start this app.

Version: boram-v0.3.7-linux-x64

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.1 LTS
Release:	16.04
Codename:	xenial

$ ldconfig -p | grep libmpv
	libmpv.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libmpv.so.1

Add build/compile scripts

It would be nice to be able to compile Boram ourselfs. Could you upload your build/compile scripts to GitHub?

Also some info in the Readme would be nice.

AV1 compression no work

The promised superior codec compression didn't work.

My video originally lasted 20 minutes, but I decided to convert the last 3 minutes to try

Leaving aside that it takes 3 days to convert it. It came to weigh a little less than the video with a duration of 20 minutes, only a piece of 3.

Also the video reproduces with frightful slowness

My spec

Core i5 4200U
12 GB RAM DDR3 SoDIMM
Gtx 840M (2 GB VRAM)

Energy profile "Maximum performance"
Real-time execution
Nothing open

-----Video Specs------
Input
File size = 2965 MB
Duration = 21:34
Bitrate = 19209
Container = QuickTime / MOV

Video Codec = h264
Resolution = 1296x732
Frame Rate = 60fps
Pixel format = yuv420p

Audio Codec = aac
Channels = 2(Stereo)

Output
File size = 2062 MB
Duration = 3:09
Bitrate = 91555Kbps (wtf)
Container = Matroska / WebM

Video Codec = av1
Resolution = 1296x732
Frame Rate = 60fps
Pixel format = yuv420p

Audio Codec = Vorbis
Channels = 2(Stereo)

Building instructions

Describe way how to make own build from last sources version, to get working one if last release still unusable for example

Fragment text fields don't update UI

I went ahead and selected the start and end of a fragment on a video of mine. After doing so, the only easy way I found to adjust the timing was going into Codecs > Fragment, since the fragment I wanted to export was less than a second.
I noticed that after changing the values of the boxes, if I hit play while having Toggle fragment looping enable it still shows the fragment I selected with the start and end options and not the updated values I entered on Codecs > Fragment, even though the exported clip does reflect these changes.

Amazing work, really liking the app and it's simplicity!

Logo proposal

I am an open source fan. I volunteer a logo. I made one for you. I'm waiting for your thoughts.

boram

Previous video keeps showing after new one is opened

  • Open a video file
  • Close the only tab and open a new video file
  • Still shows the previous video

Platform: macOS 10.13.3
Built from source 4a8cba5
Since there's currently no building instructions I figured out the following one.
(NaCl SDK installed and configured following https://github.com/Kagami/mpv.js)

yarn
./scripts/make-mac64-deps.sh
mkdir bin/mac64
cp -a scripts/dist/* bin/mac64/
yarn app
cp -a build/Release/boram.node dist/app/libboram.dylib
yarn dev

Appimage

may be most desired feature for all a lot useful, open, indi projects

Set framerate (change video speed)

Hi! I have a habit of watching a lot of YouTube videos on 2x speed, and I've built myself a pipeline using youtube-dl & ffmpeg to download offline copies of videos, and re-encode them to save file size AND turn 24fps content into 48 fps content by playing it back twice as fast. Here's the filter chain I use:

-filter_complex "[0:v]subtitles='subtitles.vtt':force_style='FontName=Roboto',setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]"

Would it be possible to add a slider (or even a checkbox) to add the setpts & atempo filters to my filter change in boram? Thank you!

Auto-update

Think about proper update mechanism. Updating youtube-dl is especially important.

mp4 is not encoded to webm

original mp4 data:
VideoStream: H264 - MPEG-4 AVC (part 10 avc1)
624x354
frame rate: 23.976000
Decoded format: Planar 4:2:0 YUV

Audiotream:
MPEG AAC Audio (mp4a)
Stereo
Sample rate: 48 000 Hz

original: Converted with Kdenlive: Other Data in attach.
2016-12-14-110727_497x509_scrot

Preview works(one first time).
.Error: Cannot copy - in attach
2016-12-14-111207_1672x238_scrot
2016-12-14-111217_982x143_scrot

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.