2013-08-29 86 views
5

Tôi mới đến NDK vì vậy tôi đọc hướng dẫn và tôi xây dựng thành công FFMPEG lib hơn tôi đã sao chép nó vào thư mục jni của tôi tạo tệp Android.mk và Application.mk và thực thi ndk -trình xây dựng như vậy bây giờ tôi đã libavcodec.so vào thư mục lib của tôi .. (i didnt sao chép tập tin tiêu đề ffmpeg vào thư mục jni của tôi .. là nó cần thiết để thêm tập tin tiêu đề hoặc tôi nên thêm lib ffmpeg hoàn thành vào jni ... stack- ý kiến ​​tràn mà nói rằng bạn chỉ cần thêm các tập tin tiêu đề)Làm thế nào để giảm kích thước mp4 bằng cách sử dụng FFMPEG lib vào android

Tôi biết rằng nếu tôi muốn chuyển đổi video camera thành kích thước nhỏ hơn tôi phải nén nó bằng cách sử dụng avcodac.so vì vậy tôi biên dịch nó nhưng quan trọng này là như thế nào tôi có thể dùng nó không

Có sự nhầm lẫn trong tâm trí của tôi khi sử dụng tệp đó .. 1) Tôi có nên sử dụng phương pháp System.load ("libavcodec.so") để tải tệp IF nếu có sau khi tải các tệp như thế nào tôi có thể truy cập phương pháp gốc của C/C++?

2) Hoặc tôi có cần phải tạo lớp java của tôi và lớp c của tôi mà cả hai giao tiếp với nhau và rằng lớp c giao tiếp với lớp avcodec của ffmpeg ??

Hoặc cần phải thực hiện cả hai và một điều quan trọng hơn NẾU tôi phải tạo lớp c của tôi hơn trong Android.mk tôi phải thêm nó vào dòng tệp nguồn ???

Và ai cũng có thể cho tôi biết phương pháp và các bước có sẵn để nén kích thước tệp video trong FFMPEG là gì?

Bất kỳ trợ giúp nào được đánh giá cao và câu hỏi của tôi cũng sẽ hữu ích cho những người mới khác. Cảm ơn bạn

+0

Bạn có thể giảm kích thước mp4 thành công không? – Oam

+0

@ Swap-IOS-Android, bạn có thể thực hiện việc này không ?? –

+0

@ Mr.G yup tôi đã sử dụng javacv –

Trả lời

4

1) Có, bạn cần gọi số System.load("libavcodec.so"). Bạn có thể truy cập các phương thức qua JNI.

2) Bạn cần tạo các phương thức JNI được triển khai trong C và gọi ffmpeg.

JNI hướng dẫn dành cho Android: http://code.google.com/p/awesomeguy/wiki/JNITutorial

ffmpeg hướng dẫn: http://dranger.com/ffmpeg/

+3

bạn có thể vui lòng hướng dẫn tôi chi tiết ... như tôi phải tạo lớp C của riêng tôi mà thao tác ffmpeg lib phải không? ... và tôi có cần sử dụng System.load ("libavcodec.so") trong lớp java của tôi không? ..có thể bạn hãy chia sẻ một số hướng dẫn mẫu nếu bạn có –

+1

@Sergey k Tốt hơn là nên chia sẻ một số mẫu để chúng tôi biết rõ hơn ..và bạn không biết rằng bạn có cần thêm lớp c đó vào Android.mk –

+0

Câu trả lời không đã cập nhật. –

2

JavaCV đi kèm với giấy gói Java và những chương trình biên dịch sẵn cho FFmpeg.

Hơn nữa, mẫu RecordActivity.java dường như thực hiện chính xác những gì bạn đang tìm kiếm!

1

bạn đang sử dụng thư viện FFmpeg4 để Nén video trong Android. vì vậy, bạn có thể sử dụng lệnh này để có chất lượng video tốt hơn và nén tối thiểu. Tôi đã sử dụng trong dự án của tôi nó hoạt động thành công.

ffmpeg -i <your input video path.mp4> -s 480x320 -acodec mp2 -strict -2 -ac 1 -ar 16000 -r 13 -ab 32000 -aspect 3:2 <your output video path.mp4>