উত্তর:
ffmpeg -i file.mp4
আপনার ফাইলটিতে কোন স্ট্রিম রয়েছে তা দেখতে প্রথমে দৌড়ুন। আপনার এমন কিছু দেখা উচিত:
Stream #0.0: Video: mpeg4, yuv420p, 720x304 [PAR 1:1 DAR 45:19], 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #0.1: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
Stream #0.2: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
তারপরে ffmpeg -i file.mp4 -map 0:0 -map 0:2 -acodec copy -vcodec copy new_file.mp4
ভিডিও স্ট্রিম এবং ২ য় অডিও স্ট্রিম অনুলিপি করতে চালান new_file.mp4
।
Option map (set input stream mapping) cannot be applied to input file file.mp4 new_file.mp4 -- you are trying to apply an input option to an output file or vice versa. Move this option before the file it belongs to.
: এটি সহজেই যুক্তিগুলির ffmpeg -i file.mp4 -map 0:0 -map 0:2 -acodec copy -vcodec copy new_file.mp4
-c copy
অডিও, ভিডিও জন্য অভিন্ন স্ট্রিম আছে কিন্তু উপশিরোনাম: ffmpeg -i input.mp4 -map 0:0 -map 0:2 -c copy output.mp4
।
সম্পর্কিত সমস্যা an একটি এমপি 4 ফাইল থেকে সমস্ত অডিও ট্র্যাকগুলি সরানো এইভাবে করা যেতে পারে:
ffmpeg -i input_file.mp4 -vcodec copy -an output_file.mp4
The encoder 'aac' is experimental but experimental codecs are not enabled, add '-strict -2' if you want to use it.
তবে আমি সেই পতাকাগুলি যুক্ত করেছি এবং এখনও এটি একই ...?
স্ট্রিম নম্বরগুলি সনাক্ত করুন:
$ ffmpeg -i in.mp4
...
Stream #0:0: Video: ...
Stream #0:1: Audio: ...
Stream #0:2: Audio: ...
-map _file_:_stream_
প্রক্রিয়া এবং আউটপুট কোন স্ট্রিম নির্বাচন করতে ব্যবহার করুন
$ ffmpeg -i in.mp4 -map 0:0 -map 0:2 -vcodec copy -acodec copy out.mp4
avidemux
অভ্যন্তরীণভাবে কোন একটি অডিও ফাইল পরিচালনা করে তা আপনি চেষ্টা করতে পারেন (এবং সেইজন্য আপনাকে একটি নির্দিষ্ট ট্র্যাক নির্বাচন করতে বাধ্য করে)। আমি কখনও এটি এমপি 4 দিয়ে চেষ্টা করে দেখিনি তবে এটি অন্যান্য ফর্ম্যাটগুলির সাথে কাজ করে।
আমি বেশ কয়েকবার অ্যাভিডেমাক্স (জিইউআই) এবং ffmpeg (কনসোল) ব্যবহার করেছি।
অ্যাভিডেমাক্সে, আপনি "অডিও" -> প্রধান মেনুতে "ট্র্যাক নির্বাচন করুন" নির্বাচন করেন; তারপরে আপনাকে নতুন ফাইল হিসাবে ভিডিও সংরক্ষণ করুন।
মজার বিষয় যথেষ্ট, কিছু ক্ষেত্রে অ্যাভিডেমাক্স ffmpeg এর চেয়ে "ভাল" আউটপুট উত্পাদন করেছিল।
কেবলমাত্র যদি অ্যাভিডেমাক্স এবং ffmpeg মানক ফেডোরা লিনাক্সের সংগ্রহস্থলের মধ্যে থাকে। (আমি নিশ্চিত যে তারা অন্যান্য লিনাক্স স্বাদেও মান standard
-vn
বা -an
সমস্ত ভিডিও বা অডিও ট্র্যাকগুলি সরিয়ে ফেলবে। সরবরাহ -vn -acodec copy
ভিডিও সরিয়ে দেবে; -an -vcodec copy
সমস্ত অডিও অপসারণ করা হবে।
-vcodec copy
নির্দিষ্ট করে যে ffmpeg একটি বিদ্যমান অনুলিপি বিদ্যমান ভিডিও ট্র্যাক অনুলিপি করা উচিত (এবং এটির কোনও প্রসেসিং / এনকোডিং করবেন না)। যদি আপনি এটি নির্দিষ্ট না করেন তবে এটি এখনও কাজ করবে তবে ffmpeg বিদ্যমান ভিডিও ট্র্যাকটিকে পুনরায় এনকোড করতে পারে এবং অপারেশনটি আরও সিপিইউ ব্যবহার করবে এবং যথেষ্ট সময় নিতে পারে।
কমান্ড-লাইনে অ্যাভিডেমাক্স ব্যবহার করা।
(অ্যাভিডেমাক্স জিইউআই-তে, https://unix.stackexchange.com/a/85834/4319 উপরোক্ত হিসাবে, আপনি কেবল অডিও ট্র্যাকগুলি নির্বাচন / আনইলেক্ট করুন এবং ফাইলটি সংরক্ষণ করুন ((সমস্ত কিছুই নতুন এভিআইতে অনুলিপি করা হয়েছে)))
আমার ক্রিয়াকলাপগুলির জন্য স্পাইডারমনকি বা টিনিপি প্রজেক্টস হিসাবে কী ধরণের প্রকল্পগুলি সংরক্ষণ করা হয়েছে তা আমি দেখেছি এবং এটি প্রমাণিত হয়েছে যে স্পাইডারমনকি (জাভাস্ক্রিপ্ট) প্রকল্পে আমার যে অডিও ট্র্যাক নির্বাচন ক্রিয়াকলাপ নেই, তার অভাব রয়েছে, তবে টিনিপি (পাইথন) প্রকল্পটি নেই তাদের।
আমি সমস্ত সম্পর্কযুক্ত (অপ্রয়োজনীয় রেখার এক ডজন) সমস্ত অপসারণ করেছি এবং এটি আমার মধ্যে রয়েছে some_series.py
:
#PY <- Needed to identify #
#--automatically built--
adm = Avidemux()
adm.audioClearTracks()
adm.audioAddTrack(1)
এটি ট্র্যাক 1 ছেড়ে যায়, তবে 0 টি ড্রপ করে।
তারপরে আমি এই জাতীয় আদেশ সহ অনেকগুলি ফাইলের ব্যাচ রূপান্তরটি চালিয়েছি:
for f in *.avi; do avidemux3_cli --nogui --load "$f" --run ../some_series.py --save ../some_series/"${f%%.rus.eng.avi}".eng.avi --quit; done
এটি সমস্ত কিছু অনুলিপি করে তবে প্রয়োজনীয় অডিও ট্র্যাক বাদে সমস্ত ড্রপ করে।
কমান্ড-লাইন থেকে অ্যাভিডেমাক্স চালনার উপায়টি https://www.avidemux.org/admWiki/doku.php?id=tutorial:batch_processing থেকে শিখেছি , যদিও তারা পাইথন স্ক্রিপ্টগুলি উল্লেখ করে না, কেবল জেএসগুলি ( যা আমার পক্ষে কার্যকর হয়নি)।
ffmpeg
প্রোগ্রাম দ্বারা প্রতিস্থাপিত করা হয়েছে avconv
। avconv
এর সাথে খুব একই রকম ব্যবহার রয়েছে ffmpeg
, সুতরাং এই পোস্টে সমস্ত কমান্ডের কিছু হতে পারে:
avconv <old ffpmeg command line options>
আপনি উবুন্টুতে থাকলে ইনস্টল করতে এই লিঙ্কটি অনুসরণ করুন avconv
।
এফএফএমপিইজি আপনার জন্য সহায়ক সমাধান হতে পারে।
$ man ffmpeg