2012-06-26 30 views
12

एंड्रॉइड पर एक वीडियो (एमपी 4 या 3 जीपी) काटने का कोई तरीका है, जैसे मूवी के केवल पिछले 5 सेकंड का उपयोग करें ... आईफोन पर यह AVAssetExportSession का उपयोग कर संभव है लेकिन एंड्रॉइड पर मुझे कुछ भी समान नहीं मिला है, शायद ffmpeg लाइब्रेरी के कुछ संदर्भ जो जटिल लगते हैं। क्या ऐसा करने का कोई आसान तरीका है?एंड्रॉइड एसडीके कट/ट्रिम वीडियो फ़ाइल

+0

इस http://stackoverflow.com/a/21752769/2562861 – Shijil

उत्तर

8

आप इसे मेरे mp4parser लाइब्रेरी के साथ कर सकते हैं। ShortenExample पर एक नज़र डालें, यह वही करता है जो नाम बताता है। चूंकि लाइब्रेरी वीडियो को फिर से एन्कोड नहीं कर सकती है, इसलिए यह केवल आई-फ्रेम पर वीडियो काट सकती है। तो समय में अंक जहां आप कटौती कर सकते हैं काफी मोटे हैं।

Android 4.1 पर आप MediaCodec एपीआई जो एक विकल्प हो सकता है के माध्यम से हार्डवेयर कोडेक का उपयोग कर सकते हैं (लेकिन मुझे लगता है कि के किसी भी उदाहरण अभी तक नहीं देखा है)

+0

क्या यह केवल एमपी 4 फाइलों के लिए है या यह अन्य एक्सटेंशन के लिए काम करता है? और मुझे ShortenExample लिंक कहां मिल सकता है? – Catalin

+0

3 जीपी फाइलें कुछ मामूली प्रतिबंधों के साथ मूल रूप से एमपी 4 फाइलें हैं। मेरा lib भी 3 जीपीपी (और क्विकटाइम) फाइलों पर काम करता है लेकिन ** ** ** अन्य कंटेनरों जैसे avi या mkv पर काम करता है। –

+0

मुझे एक सामान्य उपलब्ध लाइब्रेरी की आवश्यकता है जो एंड्रॉइड फोन को सहेजने वाले सभी वीडियो प्रारूपों के साथ काम करना चाहिए, जैसे एमपी 4, 3 जीपी, एमकेवी शायद :( – Catalin

4

पर इस

Intent trimVideoIntent = new Intent("com.android.camera.action.TRIM"); 

// The key for the extra has been discovered from com.android.gallery3d.app.PhotoPage.KEY_MEDIA_ITEM_PATH 
trimVideoIntent.putExtra("media-item-path",FilePath); 
trimVideoIntent.setData(videoUri); 

// Check if the device can handle the Intent 
List<ResolveInfo> list = getPackageManager().queryIntentActivities(trimVideoIntent, 0); 
if (null != list && list.size() > 0) { 
    startActivity(trimVideoIntent); // Fires TrimVideo activity into being active 
}else { 
    Toast.makeText(this, "not supported",Toast.LENGTH_SHORT).show(); 
} 

अपने काम की कोशिश gallery2 पैकेज स्थापित उपकरणों

1

आप मोबाइल के लिए स्वतंत्र मीडिया कोशिश कर सकते हैं - https://software.intel.com/en-us/articles/intel-inde-media-pack-for-android-tutorials

यह मेरे रूप में ट्रांसकोडिंग \ remuxing कार्यक्षमता है diaComposer वर्ग और परिणामस्वरूप फ़ाइलों के लिए सेगमेंट का चयन करने की संभावना। यह MediaCodec एपीआई का उपयोग करता है के अंदर यह बहुत बैटरी के अनुकूल है और संभव

enter image description here

3

हम Android में ffmpeg का उपयोग कर वीडियो कटौती कर सकते हैं के रूप में के रूप में तेजी से काम करता है।

एंड्रॉइड में एफएफएमपीई को एकीकृत करने के लिए हम ffmpeg-android जैसे प्रीकंपील्ड लाइब्रेरी का उपयोग कर सकते हैं।

एक वीडियो हम कमान

String[] complexCommand = {"-ss", "" + startMs/1000, "-y", "-i", inputFileAbsolutePath, "-t", "" + (endMs - startMs)/1000, "-s", "320x240", "-r", "15", "-vcodec", "mpeg4", "-b:v", "2097152", "-b:a", "48000", "-ac", "2", "-ar", "22050", outputFileAbsolutePath}; 

यहाँ नीचे का उपयोग कर सकते में कटौती करने के लिए,

-ss

बिना

-y

ओवरराइट उत्पादन फ़ाइलों की स्थिति करना चाहता है पूछ।

मैं

ffmpeg इनपुट "फ़ाइलें" की एक मनमाना संख्या मैं विकल्प

आयकर

सीमा इनपुट फ़ाइल

से पढ़ने के डेटा की अवधि द्वारा निर्दिष्ट से पढ़ता

-s

वीडियो आउटपुट आकार

-r

फ्रेम दर सेट

-vcodec

वीडियो कोडेक सेट करें।

बी: वी

वीडियो बिटरेट सेट

बी: एक

ऑडियो बिटरेट

-ac

ऑडियो चैनलों की संख्या सेट करें सेट करें।

-ar

ऑडियो धाराओं के लिए नमूना दर सेट करता है, तो

startMs

जहां

endMs कटौती करने के लिए

अंत चाहते से मिलीसेकेंड में वीडियो के

प्रारंभ समय इनकोडिंग मिलीसेकंड में वीडियो का समय जिसमें आप

काटना चाहते हैं

मैं जो video.Check काटने शामिल ffmpeg का उपयोग कर संपादन वीडियो पर एक नमूना एंड्रॉयड प्रोजेक्ट बनाया हुआ है यह

https://github.com/bhuvnesh123/FFmpeg-Video-Editor-Android

और उसके ट्यूटोरियल बाहर पर-

https://androidlearnersite.wordpress.com/2017/03/17/ffmpeg-video-editor/

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^