Comments (13)
adding this to veejay-server side
from veejay.
done
from veejay.
For bonus: this is UI logic only using VIMS_VIDEO_SET_FRAME. Somehow .. the user would probably want to save this after setting the positions for the perfect jumps
from veejay.
So awesome!
it's really a must have for performing! is'nt it ?
Next step; buffering the streams and have to same xperience in the stream buffer! :-0
from veejay.
Buffering the streams is an option; It will either take diskspace or RAM. What should be the default behaviour here ? Always buffer the stream ?
from veejay.
Buffering the streams is an option; It will either take diskspace or RAM. What should be the default behaviour here ? Always buffer the stream ?
I think,
- disabled by default
- command line option to enable
- set framebuffer 'multiplicator' has VIMS_STREAM_SET_BUFFER_MULTIPLICATOR ?
- ram or file (ssd should be quick enought?) has advanced option
from veejay.
I think a commandline switch is too much trouble for the user and having it disabled by default will have only veejay experts use it
how about:
reloaded: new spinbutton with label "Memory buffer size in frames" and a label that prints the timecode. Lets call this Q
reloaded: new switch "Play frames from memory"
The memory buffer would simply dump the frames to disk (SSD), uncompressed.
While the memory buffer is played back, each frame played is replaced for a new incoming frame, so the stream is always at most Q frames behind.
A sample can be used here too; each time Q frames are played, we can update the edit decision list and load the new video sequence. Then, we update the the start/end positions and we can keep doing this, while in the background, the stream is still beeing recorded. What do you think?
This option, would have a sample link with a tag
from veejay.
Record 50 frames from stream #4 and append it to sample 1
echo "228:4 50 0 1;" | sayVIMS
To summarize:
reloaded The sample panel has a new frame "Live feed buffer"
reloaded The sample panel has a spinbox with the label "Link to stream"
reloaded The sample panel has a spinbox with the label "Frames to buffer from stream" (Q)
reloaded The sample panel has a switch "Buffered stream playback"
When "buffered stream playback" is enabled, the offline recorder keeps recording video files of Q frames in length from stream "Link to stream" and appends them to the sample's edit decision list. Each time, the start and end positions of the sample are updated. When "buffered stream playback" is disabled, the offline recorder stops and the sample keeps looping based on current data.
plus:
- can link to any stream playing
- re-uses the recorder functionality
- you can do trickplay and anything else, as it is now just another sample
to test:
- when the buffered stream playback is enabled and trickplay is on default (speed 1, play forward), it should be just like watching a live feed with 10 seconds delay.
minus: When Q is set to 10 (250 frames @25fps)
- For every 10 seconds a new video file is created and saved in the current working directory.
- After a year, there will be 3.154.000.000 video files.
from veejay.
done
from veejay.
Interesting approach ;-)
But I think that the user experience needto be polished.
For me it's an ux error to be obliged to setup a sample to play with streams. This is revelant from coding logics, but not
from the user side.
ie: I'm playing a stream, I activate the buffer because I know that i will use it. From user logic I search for this feature directly in the stream's properties I'm playing.
Related task Maybe it's the time to create panels for the stream ? :
- Record to disk
- Transitions
- Quick Jump controls (Buffered stream controls) <----- This panel could also be added to samples to parameters the jumps destination
- Stream properties (camera control / generator parameters / ..)
from veejay.
True, but veejay carries this technical debt where libstream and libsample are two seperate entities. What actually needs to happen is that everything becomes a sample; Then this problem dissappears.
How would this work from a user point of view when this is activated in the stream properties ?
From a technical point of view; The stream would need to create (or select) an empty sample and then append the video recordings to it. While the stream is active, there is no trickplay possible. So, it has to switch to the newly created sample to play the buffers.
from veejay.
The related task you can create, that's fine with me!
from veejay.
From a technical point of view; The stream would need to create (or select) an empty sample and then append the video recordings to it. While the stream is active, there is no trickplay possible. So, it has to switch to the newly created sample to play the buffers.
When stream buffer is activated, 10 hidden samples linked to the stream are created and filled.
Could the be a kind of rollover in the name, to fill the 10 samples each Q.
When the user hit [1-9] a buffered sample is played. [0] and [F1 - F12] corresping to the stream live
In did, this logic could hurt veejay heart ....
from veejay.
Related Issues (20)
- shapes install failed (fedora) HOT 2
- Repository description is missing HOT 1
- Hap codecs integration HOT 1
- Planes are swapped when creating screenshot HOT 5
- Transition branche: fx entries disappearing HOT 1
- better slowmotion algorithm
- Create debian binary package HOT 3
- Transitioning sound ! HOT 1
- Crash incrementing fx parameter (when no parameter exist)
- Create panels for the stream
- Transition polish/fixes/todolist HOT 1
- 'veejay/Makefile.in' not found HOT 2
- packed 4:2:2 YUV in vloopback writer HOT 1
- Latest master builds fail on debian stable HOT 3
- Incompatibility with recent versions of ffmpeg
- autogen.sh failed on Ubuntu 20.04.2
- veejay not starting anymore HOT 26
- client build fails HOT 3
- [question] Any hints on how to cross-compile for rpi4 HOT 48
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from veejay.