dhobsd / castty

A CLI tool to record audio-enabled screencasts of your terminal, for the web.
Other
117 stars 15 forks source link

asciicast v2 #35

Closed hoehermann closed 4 years ago

hoehermann commented 4 years ago

Maybe you want this for #23.

hoehermann commented 4 years ago

I can do that. Don't know when, though.

I need to cut parts of the cast including the audio. For this reason, I also worked on an editor, but it is not ready yet. Here is an example: https://ssl.hehoe.de/zeug/asciinema-editor/

dhobsd commented 4 years ago

Very cool! Thank you!

hoehermann commented 4 years ago

I finally got around to toy with this again. As you requested, asciicast v2 format is now optional. Duration is stored in the header without breaking the specification.

I removed all "improvements" relating to audio. On my system, somehow related to pulseaudio, there is a significant delay between the call to audio_start and the time of the audio samples being recorded. Foolish me assumed this delay would be static. Now I observed random delays between 0 and more than a second. I could probably work around this by mimicking the mechanics used to mute audio. This would mean calling audio_start only once. If the user wants to pause audio, audio_stop would not be called, but samples should be discarded. I failed to implement this quickly, so I resort to doing my recordings in one go. At least for now.

dhobsd commented 4 years ago

Hey there! I'm terribly sorry for the delay again -- personal stuff has resulted in being a poor OSS steward.

I've made some changes that introduce a conflict here, but I'd still like to merge this. I'm intending to do so tomorrow morning, or next Thursday if that doesn't work out.

Are you still having issues with delays related to Pulse? I'm interested in what you've learned since then, if you wouldn't mind filing an issue in the repo.

Finally, I'd like to circle back to editing tools. Did you end up doing more work here? Licencing around the code linked is unclear, so I'm hesitant to base any work off of it without permission.

hoehermann commented 4 years ago

Hey there! I'm terribly sorry for the delay again -- personal stuff has resulted in being a poor OSS steward.

No worries – we are all doing this for fun, are we not? Obligations and pressure are no fun. :)

Are you still having issues with delays related to Pulse?

Yes, but it is not castty's fault at all. I still have not found the root of the problem. It seems to be related to the cheap USB capture device I am using. I am also experiencing problems when recording with ffmpeg. There is a certain random delay between opening the device and when the samples are actually being recorded. I can work around it by starting pavucontrol and leave it open. Apparently pavucontrol is continuously polling the hardware for the most recent samples, keeping it busy. That works for ffmpeg at least, I have not tried with castty since I discovered this behaviour.

Finally, I'd like to circle back to editing tools. Did you end up doing more work here?

Unfortunately, I have not worked towards editing, but I did use it productively and, based on user reports, improved the playback functionality. Seeking looks okay now in most cases. Sometimes the HTML terminal emulator does not clear the screen properly, but I have not figured out how to compile the most recent version. :/

Licencing around the code linked is unclear, so I'm hesitant to base any work off of it without permission.

Oh, dang. That is me being a poor OSS steward. I just GPL'ed casttycut. :)

dhobsd commented 4 years ago

Thanks so much for this work. I wish there was a cleaner way to insert the header, because it feels a bit brittle. I think eventually castty should do an atexit(3)-ish thing where it writes a header to a file and then merges the events into that file. I'll make an issue to fix that (who knows when that'll get gotten around to, hah). But in the meantime, thanks again for the contributions!