এমকেভি ফাইল থেকে অডিও স্ট্রিমগুলি কীভাবে ফেলা যায়?


16

আমি এমকেভি (ম্যাট্রোস্কা) ফাইল থেকে অপরিবর্তিত অডিও স্ট্রিমগুলি সরিয়ে দেওয়ার চেষ্টা করছি। আমি এটি করার কারণটি হ'ল উইন্ডোজ মিডিয়া প্লেয়ারটিতে ম্যানুয়ালি পছন্দসই স্ট্রিমটি নির্বাচন না করা।

ইনপুট ফাইলটি নিম্নলিখিত ffmpeg তথ্য দেয়:

Stream #0.0: Video: mpeg4, yuv420p, 704x396 [PAR 1:1 DAR 16:9], 29.98 tbr, 1k tbn, 29.98 tbc
Stream #0.1(eng): Audio: aac, 24000 Hz, 5.1, s16
Stream #0.2(jpn): Audio: aac, 24000 Hz, 5.1, s16
Stream #0.3(eng): Subtitle: 0x0000
Stream #0.4(eng): Subtitle: 0x0000
Stream #0.5: Attachment: 0x0000
Stream #0.6: Attachment: 0x0000

যেহেতু আমি 0, 1 এবং 3 (উপ) প্রবাহগুলি চাই, আমার ffmpeg কমান্ডটি দেখতে এমন দেখাচ্ছে:

ffmpeg -i input.mkv -map 0:0 -map 0:1 -map 0:3 -vcodec copy -acodec libmp3lame -newsubtitle test.mkv

যা আশ্চর্যজনকভাবে ত্রুটি দেয়:

At least one output file must be specified

সাবটাইটেলগুলি সরানো হচ্ছে:

ffmpeg -i input.mkv -map 0:0 -map 0:1 -vcodec copy -acodec libmp3lame test.mkv

আমাকে এটি দেয়:

Number of stream maps must match number of output streams

"ম্যাপ" বিকল্পটি কীভাবে কাজ করে তা আমি সত্যিই বুঝতে পারি না বলে মনে হচ্ছে। কেউ আমাকে এটি বুঝতে সাহায্য করবে?

উত্তর:


25

আপনি যা করতে চান তা যদি কোনও স্ট্রিম সরিয়ে ফেলা হয়, পুনরায় এনকোড নয়, আপনি সম্ভবত এমকেভি টলনিক্স প্যাকেজটি দিয়ে এটি করতে চান ( ভিডিওহেল্প ডটকমের পৃষ্ঠা দেখুন )।

এমন বেশ কয়েকটি জিইউআই রয়েছে যা আপনাকে সহায়তা করতে পারে (ভিডিওহেল্প লিঙ্কটি ঘুরে দেখুন)। সঠিক mkvmergeকমান্ডলাইনটি কী হতে পারে তা আমি নিশ্চিত নই , তবে আমি মনে করি এরকম কিছু কার্যকর হবে:

# first, get audio track info so we know which one to keep
mkvmerge -i input.mkv
File 'input.mkv': container: Matroska
Track ID 1: video (V_MPEG4/ISO/AVC)
Track ID 2: audio (A_AAC)
Track ID 3: audio (A_AAC)        <----------- for example, let's keep this one
Track ID 4: audio (A_AAC)

mkvmerge -o output.mkv --atracks 3 input.mkv

যে উচিত কৌতুক (আমি একটি ফাইল পরীক্ষার জন্য কুশলী, দুঃখিত না থাকে) না। --atracksবিকল্প বলে mkvmergeকপি করতে শুধুমাত্র তালিকাভুক্ত নতুন ফাইল অডিও ট্র্যাক। আপনি যদি 2 ও 3 রাখতে চান তবে 4 না, আপনি ব্যবহার করতে পারেন --atracks 2,3

mkvmergeশিরোনাম সেট করার জন্য অডিও ইত্যাদির সিঙ্কে আরও বিলম্ব যুক্ত করার জন্য প্রচুর অন্যান্য বিকল্প রয়েছে, সুতরাং বিশদটির জন্য ম্যানপেজটি পরীক্ষা করে দেখুন।


5
দেখে মনে হচ্ছে --atracksবিকল্প আর বিদ্যমান নেই, পরিবর্তে এক ব্যবহার করা উচিত হয় --audio-tracksবা --video-tracks
ম্যালাত

0

-fনির্দিষ্ট বিন্যাসটি জোর করার চেষ্টা করুন :

ffmpeg -i input.mkv -map 0: 0 -map 0: 1 -map 0: 3 -vcodec copy -acodec libmp3lame -Nububtitle -f mkv test.mkv

এটি আশ্চর্যজনকভাবে আমাকে ত্রুটি দেয়: "কমপক্ষে একটি আউটপুট ফাইল অবশ্যই নির্দিষ্ট করতে হবে"
স্ট্যাকডক্রুকড

পুরো পথটি ব্যবহার করার চেষ্টা করুন, যেমন: সি: \ পাথ \ থেকে \ আউটপুট.এমকেভি (আমি ধরে নিচ্ছি আপনি মিডিয়া প্লেয়ারের রেফারেন্সের দ্বারা উইন্ডোতে রয়েছেন)
জন টি

@ জন টি: পুরো পথটি ব্যবহার করে (উক্তি সহ বা ছাড়াই) এখনও আমাকে "কমপক্ষে একটি আউটপুট ফাইল নির্দিষ্ট করতে হবে" ত্রুটি বার্তা দেয়।
স্ট্যাকডক্রুকড

0

এখানে দুটি পৃথক সমস্যা রয়েছে:

  1. প্রথম কমান্ড লাইনে, পরামিতিগুলির ক্রমটি ভুল হতে পারে। আমি মনে করি -newaudioআউটপুট ফাইলের নামের পরে স্যুইচটি শেষ হওয়া দরকার।

  2. দ্বিতীয় কমান্ড লাইন, "সাবটাইটেলগুলি সরানো", যেহেতু ইনপুট ফাইলের সাবটাইটেল রয়েছে, -snসেগুলি সরাতে আপনাকে সুইচটি ব্যবহার করতে হবে। অন্যথায়, মনে হচ্ছে এফএফম্পেগ -mapতালিকাটিতে অন্তত একটি নির্দিষ্ট করে চায় ।


0

আপনার প্রথম কমান্ডে, আপনি পরীক্ষাটি নির্দিষ্ট করেন নি m mkv আপনার আউটপুট ফাইল। দেখে মনে হচ্ছে আপনার কিছু অংশের মতো ... -c copy test.mkvবা কোডকের মতো নির্দিষ্ট করার জন্য সেই অংশটি পরিবর্তন করা দরকার ... -c:s copy test.mkv

এবং নিশ্চিত না যে সেই -newsubtitleপতাকাটি সেখানে কী করছে। তবে যদি আপনার কাছে সাবটাইটেল ফাইল যুক্ত করতে চান তবে আপনার অন্য একটি ইনপুট পতাকা করতে সক্ষম হওয়া উচিত -i input.srt। তার জন্য এই লিঙ্কটি দেখুন ।

আপনার দ্বিতীয় কমান্ডে, আমি মনে করি এটি দেখে মনে হচ্ছে আপনি ভিডিও স্ট্রিমটি ম্যাপ করার চেষ্টা করছেন এবং এটি অনুলিপি করার চেষ্টা করছেন। সুতরাং আপনি -vcodec copyনির্দেশটি সরানোর চেষ্টা করতে পারেন এবং এটি কেবল কাজ করা উচিত। :)


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.