Hi dear list,
I know that Gem's OpenGL output is not primarily designed to be captured into a video file but am wondering what are the best practices by the list members to create a movie file from a Gem window's output?
Thank you for all ideas! P
This is such a reoccurring question, I've always wanted to make a FAQ about this where we can point to. There are quite a few possibilities and it depends on the system and case which one is the best for you.
A) inside GEM You can record the GEM window inside GEM with pix_record and pix_snap. This is the cleanest and cross platform solution, because it doesn't require additional soft- or hardware. You can also render things slower than realtime, while making sure to save every frame.
B) outside of GEM, but inside the computer Use a screen capturing software, such as Vokoscreen, simplescreenrecorder, RecordMyDesktop or a broadcasting solution like OBS to capture the GEM window and save it in a file.
C) outside of the computer You can display the Gem output on an external monitor and record the output with a hardware device that captures HDMI or DVI. Expensive, but if the former solutions are not viable, then it's the only way. For example you have a live performance with audio and your computer is on its limits CPU wise, so it would crash or crackle if you would run A) or B).
On 2017년 09월 17일 19:01, Peter P. wrote:
Hi dear list,
I know that Gem's OpenGL output is not primarily designed to be captured into a video file but am wondering what are the best practices by the list members to create a movie file from a Gem window's output?
Thank you for all ideas! P
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
I often use the methods of GEM to have the files right there for further use, but performance wise just for recording on OSX i want to point to syphon + the simple syphon recorder.
Am 17.09.2017 um 20:15 schrieb Max abonnements@revolwear.com:
This is such a reoccurring question, I've always wanted to make a FAQ about this where we can point to. There are quite a few possibilities and it depends on the system and case which one is the best for you.
A) inside GEM You can record the GEM window inside GEM with pix_record and pix_snap. This is the cleanest and cross platform solution, because it doesn't require additional soft- or hardware. You can also render things slower than realtime, while making sure to save every frame.
B) outside of GEM, but inside the computer Use a screen capturing software, such as Vokoscreen, simplescreenrecorder, RecordMyDesktop or a broadcasting solution like OBS to capture the GEM window and save it in a file.
C) outside of the computer You can display the Gem output on an external monitor and record the output with a hardware device that captures HDMI or DVI. Expensive, but if the former solutions are not viable, then it's the only way. For example you have a live performance with audio and your computer is on its limits CPU wise, so it would crash or crackle if you would run A) or B).
On 2017년 09월 17일 19:01, Peter P. wrote:
Hi dear list, I know that Gem's OpenGL output is not primarily designed to be captured into a video file but am wondering what are the best practices by the list members to create a movie file from a Gem window's output? Thank you for all ideas! P _______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
for performance, I record every fader and control, so pd can play the performance again. then I record every image (not in real time) : it allows a very good recording quality, with very few CPU load during the performance. cheers c
Le 17/09/2017 à 20:41, hi via Pd-list a écrit :
I often use the methods of GEM to have the files right there for further use, but performance wise just for recording on OSX i want to point to syphon + the simple syphon recorder.
Am 17.09.2017 um 20:15 schrieb Max abonnements@revolwear.com:
This is such a reoccurring question, I've always wanted to make a FAQ about this where we can point to. There are quite a few possibilities and it depends on the system and case which one is the best for you.
A) inside GEM You can record the GEM window inside GEM with pix_record and pix_snap. This is the cleanest and cross platform solution, because it doesn't require additional soft- or hardware. You can also render things slower than realtime, while making sure to save every frame.
B) outside of GEM, but inside the computer Use a screen capturing software, such as Vokoscreen, simplescreenrecorder, RecordMyDesktop or a broadcasting solution like OBS to capture the GEM window and save it in a file.
C) outside of the computer You can display the Gem output on an external monitor and record the output with a hardware device that captures HDMI or DVI. Expensive, but if the former solutions are not viable, then it's the only way. For example you have a live performance with audio and your computer is on its limits CPU wise, so it would crash or crackle if you would run A) or B).
On 2017년 09월 17일 19:01, Peter P. wrote:
Hi dear list, I know that Gem's OpenGL output is not primarily designed to be captured into a video file but am wondering what are the best practices by the list members to create a movie file from a Gem window's output? Thank you for all ideas! P _______________________________________________ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
Very interesting question, indeed.
I have only used Max's option A (pix_snap, pix_record) and they work fine. If CPU is at the limit, what I have done is just go via ethernet to a second computer, and do all video rendering and recording there, leaving the main one for audio only.
I have some more follow-up questions, though:
then I record every image (not in real time) : it allows a very good recording quality,
Do you use pix_write for this, with larger window dimensions?
A) inside GEM You can record the GEM window inside GEM with pix_record and pix_snap. This is the cleanest and cross platform solution, because it doesn't require additional soft- or hardware. You can also render things slower than realtime, while making sure to save every frame.
Do you also use the FSAA message? Does it affect pix_write / pix_record quality ?
Extra questions:
is "batch" mode an option for non-realtime recording ? or would it not work with Gem? I have never tried this.
for performance, I record every fader and control, so pd can play the performance again.
How did you achieve this, in a simple text file like using [text], [text sequence], or something else?
Cheers!
fd
Le 17/09/2017 à 21:07, Federico Camara Halac a écrit :
Very interesting question, indeed.
I have only used Max's option A (pix_snap, pix_record) and they work fine. If CPU is at the limit, what I have done is just go via ethernet to a second computer, and do all video rendering and recording there, leaving the main one for audio only.
I have some more follow-up questions, though:
then I record every image (not in real time) : it allows a very good recording quality,
Do you use pix_write for this, with larger window dimensions?
yes
A) inside GEM You can record the GEM window inside GEM with pix_record and pix_snap. This is the cleanest and cross platform solution, because it doesn't require additional soft- or hardware. You can also render things slower than realtime, while making sure to save every frame.
Do you also use the FSAA message? Does it affect pix_write / pix_record quality ?
pix write record the frame buffer, so it's affected by FSAA
Extra questions:
is "batch" mode an option for non-realtime recording ? or would it not work with Gem? I have never tried this.
batch mode allow to go faster than real time. In this situation it will not change anything since pd run slower than real time.
for performance, I record every fader and control, so pd can play the performance again.
How did you achieve this, in a simple text file like using [text], [text sequence], or something else?
yes.
I made a simple abstraction that I insert between every fader and what they control. The abstraction send value to the text file and receive data from the same file.
cheers c
Cheers!
fd
for performance, I record every fader and control, so pd can play the performance again. then I record every image (not in real time) : it allows a very good recording quality, with very few CPU load during the performance.
Thank you Cyrille, this is a very cool way! Do you record fader and control messages with framerate time resolution into tables?
best, P
Le 17/09/2017 à 21:08, Peter P. a écrit :
- cyrille henry ch@chnry.net [2017-09-17 20:48]:
for performance, I record every fader and control, so pd can play the performance again. then I record every image (not in real time) : it allows a very good recording quality, with very few CPU load during the performance.
Thank you Cyrille, this is a very cool way! Do you record fader and control messages with framerate time resolution into tables?
nop, in a textfile
best, P
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
This is such a reoccurring question, I've always wanted to make a FAQ about this where we can point to. There are quite a few possibilities and it depends on the system and case which one is the best for you.
Thank you Max for responding here!
A) inside GEM You can record the GEM window inside GEM with pix_record and pix_snap. This is the cleanest and cross platform solution, because it doesn't require additional soft- or hardware. You can also render things slower than realtime, while making sure to save every frame.
I tried this and it works kinda great! I attach a patch for others that does pretty much that.
Here are a few questions to everyone that have just arisen:
I am not selecting a particular codec, perhaps the first codec in the list codec 0 ffmpeg_mpg4 FFMPEG MPEG-4 is used as default?
It is cool that the resulting file (header) seems to know about the Gem framerate, although I am recording with individual bangs rather than the auto message. The codec seems to support 20 and 25 fps, but for example not 22fps as it tells me then that [mpeg4 @ 0x55e50833bac0] removing common factors from framerate [mpeg4 @ 0x55e50833bac0] timebase 22727/500000 not supported by MPEG 4 standard, the maximum admitted value for the timebase denominator is 65535
I am doing this on Debian(testing) and having started Pd from an xterm I am getting a line of [mpeg4 @ 0x55e50809b620] AVFrame.format is not set [mpeg4 @ 0x55e50809b620] AVFrame.width or height is not set there for every frame that is written to disk.
In addition the helpfile for pix_record mentions a [dialog< message, that has no effect (on my O.S) and is lacking the info that the codec list and properties are given at the third outlet of [pix_record] and that the default for the [auto< message seems to be "1".
Upon closing my patch I get the following red line in the Pd console: record: implementation forgot to call close() - please report a bug!
Creating a pix_snap object (in an empty patch) gives: GEM: Someone sent a bogus pointer to copy2Image
I hope this is not a bad thing! ;)
thank you all again! Peter
On Son, 2017-09-17 at 20:15 +0200, Max wrote:
This is such a reoccurring question, I've always wanted to make a FAQ about this where we can point to. There are quite a few possibilities and it depends on the system and case which one is the best for you.
A) inside GEM You can record the GEM window inside GEM with pix_record and pix_snap. This is the cleanest and cross platform solution, because it doesn't require additional soft- or hardware. You can also render things slower than realtime, while making sure to save every frame.
Let me mention A) a]: You can record inside Gem with [pix_write]. It stores each frame as a separate image file and doesn't require as much CPU as recording directly into a compressed movie file. You can then later render an optimized / compressed video from the files with tools like avconv or ffmpeg.
Roman