I have an app which I want to store audio files in mp4 format in a folder of my choice.
I want to share some of them in Facebook but I dont have the facebook option while if I have a mp4 video file in my device's media library, I have full list of options and facebook, and I have the mp4 video file ready to be shared.
Why is that? Do I have to add some extra info while saving them on the first place?
Do I have to save them in main device media library?
You have to put an image or video while recording because in some way the system knows it is just an audio so even if you copy the audio mp4 to the main media library you won't see any difference
Related
Straight to the point,
I have direct link to MP4 file and
I'm using exoplayer for streaming videos from a firebase database where url is stored. Suppose the mp4 url is of file location in firebase storage or common direct link. How can I stream the MP4 with different qualities option in exoplayer without creating separate MP4 files for different qualities in the storage. Or if any suggestions for other player for android (except YouTube, but similar)
I have been searching all around the web to try to understand how to stream videos to my android app.
I learned:
That the videos must be in the HLS or MPEG-DASH format to be adaptive for streaming .
What I mean by adaptive streaming:
The kind of streaming that allows the user to change the quality while video is streaming.
What could help me do this:
The first thing should be to encode my videos into an HLS or MPEG-DASH, for that I found a service that could do this which is Bitmovin.
The second thing is to play the adaptive video, I found two ways exoplayer and Bitmovin-player.
The problem:
I made an account on bitmovin and tried to test an mp4 video to encode, but there are too many stuff there like input, output and manifest and I don't know what URL I should use to pass to the bitmovin player to play. I encoded the video but I don't know where the reference to the enocoded video is.
My question:
1) Is my approach of streaming videos correct?
2) Can someone explain which url I must pass to the player or where I can find the video that was encoded in Bitmovin cloud?
1) Is my approach of streaming videos correct?
Short answer: Yes :) Adaptive streaming is used by almost every major VoD platform out there, and a proper way to do that. Further it allows you and your viewers to either
let the player decide on its own to select the optimal quality for the given connection and device of the viewer to provide continuous playback
and the viewer can select a specific quality on their own as well, if they want to.
When creating adaptive streaming content using MPEG-DASH and/or HLS as streaming format, your output would typically consist of the following:
Video/Audio Segments
MPD Manifest, and/or HLS playlists
1) Your input file (e.g. an mp4 file) will be downloaded and splitted into segments, which are being processed by the Bitmovin encoding. Out of these, it creates the different qualities the player or your viewer can choose from later.
2) This segmented output is then transferred back to your own storage, e.g. a cloud storage like AWS Simple Storage, or Google Cloud Storage. Other output types like (S)FTP and many others can be used as well.
3) In order to play your created MPEG-DASH or HLS content, a MPD manifest and/or HLS playlist needs to be created. Those are basically an index for the player, which tells it which qualities are available and where to find them to start the playback.
2) Can someone explain which url I must pass to the player or where I can find the video that was encoded in Bitmovin cloud?
The URL you would have to provide to the player, has to point the MPD and/or HLS master playlist, that gets transferred to your storage. Bitmovin doesn't offer a hosting service for your encoded content, which is why you didn't find an URL to the manifest that is used. So you would need a storage first, where the encoding could be transferred to.
Give the getting started guide a try. Select your preferred API client. Then you will be guided step by step on how to integrate this encoding service. I hope this helps :)
To test the playback of the player you can also have a look at https://bitmovin.com/demos/stream-test and select "Use our defaults" which provide URL's to sample content for testing the player and playback.
I am making a video player app. Lets make myself clear in this app no video or audio files will be saved in the raw directory during making the app. I want an app that will pick a video file from device storage when clicked a button. So please help.
You have a few options for allowing the user to pick a video, including:
Use ACTION_OPEN_DOCUMENT on Android 4.4+. You will get a Uri back that you can pass to VideoView or MediaPlayer.
Use ACTION_GET_CONTENT. Again, you will get a Uri back that you can pass to VideoView or MediaPlayer.
Use a third-party file picker library. Depending on the library, I would expect you to get a File or a Uri back for use with your video player.
The first two techniques are covered in the documentation, along with good books on Android app development.
I am developing an app. that will stream the video recorded from camera and stored as mp4 in sdcard...
I know there something called as RTSP which is used for that...
Please tell me where to start . .and is there any library that will do this for me...
I do not understand why you want to stream a local mp4 file, but maybe I misunderstood you problem. RTSP is used for live streaming, but you want to play a local mp4 file.
If you want to capture video and save it as mp4 onto a SD card, you need to use the Android MediaRecorder. Here a link to a simple example.
If you just want to playback a local mp4 file. Have a look at the Android API Demos.
These are part of the Android SDK installation and contain a good example of how to playback local media files.
I made a project like video/audio player in android.
I want to search all video and audio files available on the device, how can I do this?
Use the content provider to query the media store, see the documentation at
https://developer.android.com/reference/android/provider/MediaStore.html
https://developer.android.com/guide/topics/providers/content-providers.html