Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Streaming audio/video #62

Open
tobihagemann opened this issue May 26, 2017 · 8 comments
Open

Streaming audio/video #62

tobihagemann opened this issue May 26, 2017 · 8 comments
Labels
type:feature-request New feature or request
Milestone

Comments

@tobihagemann
Copy link
Member

Audio/video files could be streamed instead of completely downloaded first. I don't know if it's even possible but it could be worth a look in the future. I suppose, one requirement is that we have an in-app previewing activity that is capable of streaming content. We probably also have to check each cloud storage service if it has suitable APIs for streaming.

@tobihagemann tobihagemann added the type:feature-request New feature or request label May 26, 2017
@tobihagemann tobihagemann added this to the Backlog milestone May 26, 2017
@starn
Copy link

starn commented May 15, 2018

Hi,
I'm the creator of "encdroid multi cloud" app, and i built a streaming feature on this app.
Now i'm supporting cryptomator because of encfs lack of security and lack of maintenance,
I would be happy to add this functionnality if you share me the source code of cryptomator-android.
regard
Stephane

edit: i juste noticed that the android app does not use the open source engine of cryptomator ( org.cryptomator.cryptofs ) but it s own closed source implementation. i cannot participate on this kind of security software.

@sorryusernameisalreadytaken

+1 and +to open the android sourcecode... 👎

@name01019
Copy link

Would love to see this implemented. The Android source code is now released.

@starn
Copy link

starn commented Jan 2, 2021

@name01019 great i'm gonna check the code asap, it should be easy to add the streaming feature then.

@FastZet
Copy link

FastZet commented May 27, 2024

@tobihagemann I'm no programmer so excuse me trying to be Mr Smarty Pants, but in my little research I found that Mega is able to stream encrypted videos by using client-side decryption and partial data retrieval, allowing real-time decryption of video segments as they are streamed. Could Cryptomator perhaps implement a similar system where video files are fetched in segments or chunks, decrypted on-the-fly, and streamed without downloading the entire file? This would involve mechanisms for partial file fetching, real-time decryption, and integration with media players for seamless playback. Just trying to throw something that will perhaps stick.

@tobihagemann
Copy link
Member Author

I never doubted the technical feasibility. Cryptomator's encryption scheme allows random access for streaming, because the file encryption is done in fixed-length chunks. And then we have to check for each cloud storage service if they support range requests when accessing a file. This feature request is currently not on our roadmap, but maybe @starn is still interested in helping out?

@starn
Copy link

starn commented May 28, 2024

Hi @tobihagemann
You re right, cryptomator use a fixed sized block encryption, so there is no technical limit to stream a content.
However, by analysing the source code, I saw 2 implementations:

  • The first use the filesystem api, and is easily streamable. But not supported by Android.
  • the second use the weird Android local storage api, and seems hard to be used for streaming.

Solution : I have created a kind of proxy that you can run on a server (raspberry or anything else). It shares your volt as a webdav share and can be used by a lot of file managers on ios/Android. I can share the source and binary if you wish (though the code is not pretty I didn t expect to share it :)

It might be possible to create an Android app for remote access on some clouds (not for local files ) but I dont have enough time right now

@toutoumu
Copy link

A branch of edslite seems to have implemented this stream function, which can play videos on third-party players through stream. You can pay attention to the RAIOProxyFileDescriptorCallback.java MainContentProvider.java ContainersDocumentProvider.java of this project. In addition, this project can also perform read and write operations internally in stream mode, and there should be no disk write operations in the whole process.
If the file storage is a protocol such as webdav or Dropbox, you need to use RSAF to mount it locally.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:feature-request New feature or request
Projects
None yet
Development

No branches or pull requests

6 participants