I want to upload video to server, when I catch video from gallery or record from camera , the server response to me that error but when I upload video with size 2 MB , it is uploading successfully. How can I compress the video to reduce the size? I uploaded the video from face book , the size of video on my mobile is 140 MB , but face book make a process on the video and reduce it's size to 1.35 MB
You have two way to do that:
Encode it to a lower bit rate and/or lower resolution. Have a look here: Is it possible to compress video on Android?.
Try to zip/compress it. Have a look here: http://www.jondev.net/articles/Zipping_Files_with_Android_%28Programmatically%29
Unfortunately I never tried to do that with a 140MB video. This is why I suggested to you the first library (FFmpeg 4 Android).
By the way, try to increase also your UPLOAD_LIMIT on your server. But this is not the problem, even if you increase it to 10MB you still have to compress it. Do not try to increase the UPLOAD_LIMIT to 140MB, it will cause for sure an HTTP timeout.
Otherwise you need to enable a chunked upload.
Have a look on this discussion:
Android: OutOfMemoryError while uploading video - how best to chunk?
You can try using ffmpeg to reencode it with a lower bitrate, e.g.:
If you are trying to convert 140 MB to 1MB then
Calculate the bitrate you need by dividing your target size (in bits) by the video length (in seconds). For example for a target size of 1MB which is 8000000bits and 300 seconds of video, use a bitrate of approx 26 667 bit/s(i.e 27kbit/s):
ffmpeg -i input.mp4 -b 27k output.mp4
Other options that might be worth by setting Constant Rate Factor, which lowers the average bit rate, but retains better quality. Vary the CRF between around 18 and 24.
ffmpeg -i input.mp4 -vcodec libx264 -crf 20 output.mp4
Happy coding :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With