capsoftware / cap Goto Github PK
View Code? Open in Web Editor NEWEffortless, instant screen sharing. Open-source and cross-platform.
Home Page: https://cap.so
License: GNU Affero General Public License v3.0
Effortless, instant screen sharing. Open-source and cross-platform.
Home Page: https://cap.so
License: GNU Affero General Public License v3.0
i want to have mic voice only
I am running arch Linux with hyprland window manager which is based on Wayland compositor so my question is does this program support Wayland compositors too?
The contributing guide (and how to start the app for the first time) looks pretty straightforward, but running docker-compose up
would be even more.
I'd like the maintainer's opinion about this idea.
macOS Ventura 13.6.4
Code sign issue?
Taskgated Invalid Signature
-------------------------------------
Translated Report (Full Report Below)
-------------------------------------
Incident Identifier: 39CE1D08-8F47-4C90-BEB6-D00D0F3AE83B
CrashReporter Key: 920278E1-B3B1-6943-5880-9E3F0B7529FA
Hardware Model: Mac14,7
Process: Cap [41714]
Path: /Applications/Cap.app/Contents/MacOS/Cap
Identifier: so.cap.desktop
Version: 0.1.3 (20240319.135524)
Code Type: X86-64 (Native)
Role: Default
Parent Process: launchd [1]
Coalition: so.cap.desktop [138848]
Date/Time: 2024-03-20 11:18:13.2601 +0100
Launch Time: 2024-03-20 11:18:12.9198 +0100
OS Version: macOS 13.6.4 (22G513)
Release Type: User
Report Version: 104
Exception Type: EXC_CRASH (SIGKILL (Code Signature Invalid))
Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: CODESIGNING 1 Taskgated Invalid Signature
Triggered by Thread: 0
Thread 0 Crashed:
0 0x7ff7fffa277c 0x7ff7fff9f000 + 14204
Thread 0 crashed with ARM Thread State (64-bit):
x0: 0x0000000000000000 x1: 0x0000000000000000 x2: 0x0000000000000000 x3: 0x0000000000000000
x4: 0x0000000000000000 x5: 0x0000000000000000 x6: 0x0000000000000000 x7: 0x0000000000000000
x8: 0x0000000000000000 x9: 0x0000000000000000 x10: 0x0000000000000000 x11: 0x0000000000000000
x12: 0x0000000000000000 x13: 0x0000000000000000 x14: 0x0000000000000000 x15: 0x0000000000000000
x16: 0x0000000000000000 x17: 0x0000000000000000 x18: 0x0000000000000000 x19: 0x0000000000000000
x20: 0x0000000000000000 x21: 0x0000000000000000 x22: 0x0000000000000000 x23: 0x0000000000000000
x24: 0x0000000000000000 x25: 0x0000000000000000 x26: 0x0000000000000000 x27: 0x0000000000000000
x28: 0x0000000000000000 fp: 0x0000000000000000 lr: 0x0000000000000000
sp: 0x0000000306e6fb88 pc: 0x00007ff7fffa277c cpsr: 0x00001000
far: 0x0000000000000000 esr: 0x00000000 Address size fault
Binary Images:
0x202031000 - 0x2020ccfff ??? (*) <8678e5e0-2643-3c19-8d09-b66e9040182c> ???
0x7ff7fff9f000 - 0x7ff7fffcefff (*) <2583ff4d-96e5-316e-b62f-d032f09c96c6> ???
Error Formulating Crash Report:
dyld_process_snapshot_get_shared_cache failed
EOF
-----------
Full Report
-----------
{"app_name":"Cap","timestamp":"2024-03-20 11:18:13.00 +0100","app_version":"0.1.3","slice_uuid":"82449c34-275b-3c2b-9587-d3457f0392a5","build_version":"20240319.135524","platform":0,"bundleID":"so.cap.desktop","share_with_app_devs":0,"is_first_party":0,"bug_type":"309","os_version":"macOS 13.6.4 (22G513)","roots_installed":0,"name":"Cap","incident_id":"39CE1D08-8F47-4C90-BEB6-D00D0F3AE83B"}
{
"uptime" : 380000,
"procRole" : "Default",
"version" : 2,
"userID" : 1740969562,
"deployVersion" : 210,
"modelCode" : "Mac14,7",
"coalitionID" : 138848,
"osVersion" : {
"train" : "macOS 13.6.4",
"build" : "22G513",
"releaseType" : "User"
},
"captureTime" : "2024-03-20 11:18:13.2601 +0100",
"incident" : "39CE1D08-8F47-4C90-BEB6-D00D0F3AE83B",
"pid" : 41714,
"translated" : true,
"cpuType" : "X86-64",
"roots_installed" : 0,
"bug_type" : "309",
"procLaunch" : "2024-03-20 11:18:12.9198 +0100",
"procStartAbsTime" : 9254088577574,
"procExitAbsTime" : 9254090303531,
"procName" : "Cap",
"procPath" : "\/Applications\/Cap.app\/Contents\/MacOS\/Cap",
"bundleInfo" : {"CFBundleShortVersionString":"0.1.3","CFBundleVersion":"20240319.135524","CFBundleIdentifier":"so.cap.desktop"},
"storeInfo" : {"deviceIdentifierForVendor":"E945C3C4-89CD-5EAE-8266-352994B9AF07","thirdParty":true},
"parentProc" : "launchd",
"parentPid" : 1,
"coalitionName" : "so.cap.desktop",
"crashReporterKey" : "920278E1-B3B1-6943-5880-9E3F0B7529FA",
"codeSigningID" : "",
"codeSigningTeamID" : "",
"codeSigningFlags" : 16777216,
"codeSigningValidationCategory" : 0,
"codeSigningTrustLevel" : 0,
"wakeTime" : 1005,
"sleepWakeUUID" : "4CC160CE-C7B9-4FEE-BC70-82DE2C670EBA",
"sip" : "enabled",
"exception" : {"codes":"0x0000000000000000, 0x0000000000000000","rawCodes":[0,0],"type":"EXC_CRASH","signal":"SIGKILL (Code Signature Invalid)"},
"termination" : {"flags":66,"code":1,"namespace":"CODESIGNING","indicator":"Taskgated Invalid Signature"},
"extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":0,"task_for_pid":1},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
"faultingThread" : 0,
"threads" : [{"triggered":true,"id":16843516,"threadState":{"x":[{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":13000702856},"esr":{"value":0,"description":" Address size fault"},"pc":{"value":140703128233852,"matchesCrashFrame":1},"far":{"value":0}},"frames":[{"imageOffset":14204,"imageIndex":1}]}],
"usedImages" : [
{
"size" : 638976,
"arch" : "x86_64",
"source" : "P",
"base" : 8623689728,
"uuid" : "8678e5e0-2643-3c19-8d09-b66e9040182c"
},
{
"source" : "P",
"arch" : "arm64",
"base" : 140703128219648,
"size" : 196608,
"uuid" : "2583ff4d-96e5-316e-b62f-d032f09c96c6",
"name" : ""
}
],
"vmSummary" : "ReadOnly portion of Libraries: Total=1168K resident=0K(0%) swapped_out_or_unallocated=1168K(100%)\nWritable regions: Total=24.0M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=24.0M(100%)\n\n VIRTUAL REGION \nREGION TYPE SIZE COUNT (non-coalesced) \n=========== ======= ======= \nSTACK GUARD 56.0M 1 \nStack 8176K 1 \nVM_ALLOCATE 15.9M 6 \nVM_ALLOCATE (reserved) 20K 2 reserved VM address space (unallocated)\n__DATA 80K 3 \n__DATA_CONST 32K 1 \n__DATA_DIRTY 16K 1 \n__LINKEDIT 368K 4 \n__TEXT 816K 2 \nmapped file 6.9G 35 \n=========== ======= ======= \nTOTAL 7.0G 56 \nTOTAL, minus reserved VM space 7.0G 56 \n",
"legacyInfo" : {
"threadTriggered" : {
}
},
"logWritingSignature" : "e1555b3198d858a6c6805de130e71ce23b8055fc",
"trialInfo" : {
"rollouts" : [
{
"rolloutId" : "62699e1ec1ff2978b47f6c3b",
"factorPackIds" : {
"SIRI_FIND_MY_CONFIGURATION_FILES" : "652805151bce5442b8d752e1"
},
"deploymentId" : 240000031
},
{
"rolloutId" : "63582c5f8a53461413999550",
"factorPackIds" : {
},
"deploymentId" : 240000002
}
],
"experiments" : [
{
"treatmentId" : "5d51a80d-93ec-47e1-9027-675002e78e4a",
"experimentId" : "6384d56b96e8d228551ec182",
"deploymentId" : 400000030
},
{
"treatmentId" : "00f62786-ceb5-418f-a586-adcc2922cf89",
"experimentId" : "65d62240cb0e2417d11ce6e1",
"deploymentId" : 400000002
}
]
},
"reportNotes" : [
"dyld_process_snapshot_get_shared_cache failed"
]
}
Hello! At first, thanks a lot for a great tool!
I didn't get how stop the recording quiclkly? (the only way the I found is to open Cap window, or it's by design?)
Also, I missed a recording cancellation feature.
is there any plan for supporting macbook apple sillicon M series chips
Is it possible to delete a cap from https://cap.so/dashboard/caps?
The following two dependencies are missing for the desktop version of the app in the package.json file
"extendable-media-recorder": "^9.1.4",
"extendable-media-recorder-wav-encoder": "^7.0.100",
I tried to record a video. Duration about 10-20 seconds I think. It was spinning "Finished up.." for at least a minute, so I went away to eat some lunch and when I came back, it went like this:
Thought you wanted to know. GL with Cap!
๐ฅณ ๐ฆ
Add an option in settings to flip the camera horizontally (mirror effect).
I wonder if there is anyway to contribute to the project initially would love to know more :)
Description
Experiencing a bug with frame data (from screen capture) being corrupt on some Mac's. Seems to work fine on my 16" MacBook Pro, but when testing on 14" MacBook Pro's the frame image looks corrupt.
My thoughts
I believe this possibly stems from the stride calculation needing to be altered. This is because the frame data can be visible if you mess around with the stride settings - it's not always completely corrupt. The pixel data can be shown, it's just a matter of how it is represented. Also, it may be to do with the scaling factor of the device.
Device Specs
14" MacBook Pro
M1 Pro Chip
Sonoma 14.4 (also tested on early versions, e.g. 13.1)
Resolutions tested
1800x1169 (also 2x scale)
1512x982 (also 2x scale)
1352x878 (also 2x scale)
Suspect code
The code for this is located at media.rs
which belongs to /apps/desktop
: https://github.com/CapSoftware/cap/blob/main/apps/desktop/src-tauri/src/media.rs
The line you're looking for is line 356
, match capturer.frame() {
. In here, we are iterating over each row and extending the slice to send to video_channel_sender
. This then feeds into the video ffmpeg command, at line 437
.
The raw frame should be packed bgra (ARGB8888). If you search for ARGB8888
in the codebase, you'll find the capturer
package, which ultimately creates the core graphics display stream via CGDisplayStreamCreateWithDispatchQueue
.
Description:
The current behavior of the "Join the Waitlist" feature prompts the user to input their email address without validating if it's in a valid format. This can lead to incorrect or unusable email addresses being added to the waitlist.
Expected Behavior:
The email validation feature should be implemented to ensure that users provide a valid and properly formatted email address before they can successfully join the waitlist. This will help maintain the integrity of the waitlist data and contribute to a better user experience.
Steps to Reproduce:
Navigate to the page or section where users can join the waitlist.
Click on the "Join the Waitlist" button.
An input box will appear.
Enter nothing and click on Submit.
Actual Results:
No feedback or message is displayed when submitting without entering an email.
Expected Results:
A clear message should appear, stating "Please Enter an Email Address," guiding users to provide the necessary information.
Additional Information:
It would be beneficial to consider client-side and server-side validation to ensure a robust and secure implementation. The enhancement would fall under the following labels: enhancement, validation, frontend, and user experience.
Hi! :)
i love this App. Thank You.
There is a quick comment i have. I would price your app less than loom not the same. Because the features and trust for loom is higher, there is no reason to switch to cap. If you price it around 5$ there would be a point to switch to cap.
Best
Daniel
Support Cap.so with an official Raycast extension.
Includes minimally two commands that can be invoked from Raycast:
Ideally includes support for:
Right now, there are two separate commands for capturing audio and video. They can be found in media.rs
located in apps/desktop/src-tauri
. I would like to have them combined into one single ffmpeg command to reduce system load when recording.
Requirements
You can use this guide to help you get started developing locally as quickly as possible.
The ReadMe lacks essential details about the project's motive, vision, and end goal, making it outdated and potentially confusing for users and contributors. We need to update the ReadMe to include this crucial information.
Proposed Changes:
Requirements
media.rs
.You can use this guide to help you get started developing locally as quickly as possible.
The roadmap link on the pricing page returns 404
Error occured through tauri-plugin-context-menu for passing no items when filtered out the device options here i.e. the length of the filtered devices is 0.
Happening due to an error related to navigator.mediaDevices
returning undefined
. Could be due to tauri issue
Platform: macOS
It'll be great to have this feature! (maybe in paid version)
Pasting this from the Cap Discord.
"This was a tough decision for me to make, but I'm moving away from Supabase (db/auth) for use in Cap.
I love Supabase, but local dev just doesn't seem viable right now for a shared codebase. Too many inconsistencies between features not being supported in local vs the deployed version (e.g. email templates). It's also pretty confusing to run migrations etc for anyone who hasn't used Supabase in the past.
Moving to a combination of PlanetScale (db), NextAuth (auth) and Drizzle (orm).
Making this decision now before V1 is live - much easier to handle now than in the future.
If you have any opposition to this - would love to hear your thoughts ๐"
Issue
It's possible to break the camera window (window turns black) when the app is first launched. Seems to happen if the app has launched in the background, then you open it after the camera preview has already initialised.
You can use this guide to help you get started developing locally as quickly as possible.
On starting recording, hide the main Cap window.
Show a stop recording icon in the macOS menu bar tray.
On tray icon click, stop the recording.
This is currently required for macOS only.
Requirements
-Create menu bar tray icon. Use Cap logo as icon maybe? This can be changed later.
-When recording is active, change icon to a stop icon. Maybe use this icon from Lucide.
-When recording is active, hide main Cap app recording window (keep camera overlay window as it is)
You can use this guide to help you get started developing locally as quickly as possible.
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.