kagami / boram Goto Github PK
View Code? Open in Web Editor NEW:film_strip: Cross-platform graphical WebM converter
Home Page: https://github.com/Kagami/boram/releases
:film_strip: Cross-platform graphical WebM converter
Home Page: https://github.com/Kagami/boram/releases
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.
Currently, inputting scale values like -1 x 320 will throw bad range error.
According to https://trac.ffmpeg.org/wiki/Scaling, ffmpeg -i input.jpg -vf scale=320:-1 output_320.png
is a valid command and a recommended way for keeping aspect ratio after scaling as well.
https://groups.google.com/a/webmproject.org/forum/#!topic/codec-devel/oiHjgEdii2U
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
Google doesn't provide this but should be possible to build manually. It currently prevents making true 64-bit build for Windows.
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!
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.
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).
http://appimage.org/
They might weight too much though.
Can you enable by default vp9 highbitdepth, for using profile 2 (10-bit) ?
You create a great GUI, better than handbrake and staxrip
See: https://bugs.chromium.org/p/aomedia/issues/detail?id=2062 and https://forum.doom9.org/showpost.php?p=1852393&postcount=995
$ 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
$ 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
As far as I know compression efficiency on slow speeds right now is still worse than libaom's, but they're planning to improve that, so worth to consider in future.
https://github.com/xiph/rav1e/wiki/Quality-&-Speed-Features
Playback of 1080p+ videos is pretty slow.
Depend on Kagami/mpv.js#5
Related #10
It would be nice to have a parameter to change the color depth of the encode (8/10/12-bit)
Seems not strictly Boram issue but cannot download link
But got strange unresolvable youtube-dl or python
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.)
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.
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
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.
Upstream bug: electron/electron#13624
See also: Kagami/mpv.js#29
Not urgent, also works fine with electron 3.x.
https://github.com/OpenVisualCloud/SVT-VP9
Does it produce better quality than libvpx for the same speed?
Very nice work,
have you considered splitting out the mpv part to it's own package, we'd love to use it for butterproject.org =D
Might use ifdefs and provide different libboram.so
for Linux systems with old libmpv (because we build libmpv for Windows and macOS).
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
I tried with this URL: https://www.youtube.com/watch?v=6Py_P1_cHUE
electron binary doesn't depend on libffmpeg.so
anymore but exports av_
symbols which clash with mpv plugin.
Boram defaults to -threads 8 even if there are 4 or 2 cores.
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.
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)
For some reason slider's thumb resides not at the start of the track but a bit further.
Describe way how to make own build from last sources version, to get working one if last release still unusable for example
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!
Control with 90°/180°/270° options should be enough for now.
Everything should use same shared libav* libraries, unused encoders and features need be disabled. https://github.com/jb-alvarado/media-autobuild_suite should help.
15:13 < kagami_> TD-Linux: do you know how much tile-columns impacts on quality? I.e. is it worth it.
15:14 < TD-Linux> very rough estimate is 2% per tlie
15:14 < TD-Linux> of course can be tested on awcy
https://github.com/OpenVisualCloud/SVT-AV1
Does it produce better quality than libaom for the same speed?
Is it possible to bypass encoding and preserve the audio and subtitle tracks as is?
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
may be most desired feature for all a lot useful, open, indi projects
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!
Think about proper update mechanism. Updating youtube-dl is especially important.
Is it possible to expose the output container selection to the GUI?
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.
Preview works(one first time).
.Error: Cannot copy - in attach
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.