বিভিন্ন কোডেক সহ উত্স ফাইলগুলি ব্যবহার trim
এবংconcat
এর জন্য, আপনার পৃথক ফাইলগুলির একই রেজোলিউশন রয়েছে এবং আদর্শভাবে একই ফ্রেমরেট এবং ক্রোমা সাবসাম্পলিং ইত্যাদি রয়েছে তা নিশ্চিত করুন এটি সংক্ষিপ্তকরণের সময় ত্রুটি বা বিচ্যুতি রোধ করবে।
আপনি trim
এবং concat
ফিল্টারগুলি ব্যবহার করে ফাইল বিভাজন ছাড়াই একসাথে সবকিছু করতে পারেন :
ffmpeg -i edv_g24.mp4 -i short-video.mp4 -filter_complex "\
[0:v]trim=0:10,setpts=PTS-STARTPTS[v0]; \
[1:v]trim=0:5,setpts=PTS-STARTPTS[v1]; \
[0:v]trim=15:30,setpts=PTS-STARTPTS[v2]; \
[v0][v1][v2]concat=n=3:v=1:a=0[out]" \
-map "[out]" output.mp4
এখানে, trim
ইনপুট ভিডিও স্ট্রিমগুলির পৃথক অংশগুলি নির্দিষ্ট করতে ব্যবহৃত হয় ( 0:v
, 1:v
) যা আপনি পরে যুক্ত করতে চান। এই অংশগুলির v0
মাধ্যমে নামকরণ করা হয়েছে v2
। ( setpts
ফিল্টার এই স্বতন্ত্র অংশগুলির টাইমস্ট্যাম্পগুলি 0 এ পুনরায় সেট করে, যা সংক্ষিপ্তকরণের জন্য প্রয়োজনীয়)। পরে, আমরা তিনটি অংশ একত্রীকরণ।
আপনি যদি একটি নির্দিষ্ট টাইমস্ট্যাম্প থেকে শেষ পর্যন্ত ছাঁটাতে চান trim=start=15
তবে ব্যাপ্তিটি নির্দিষ্ট করার পরিবর্তে ব্যবহার করুন।
আপনার ফাইলগুলিতে অডিও থাকলে আপনাকে সেই স্ট্রিমগুলি আলাদাভাবে ছাঁটাই করতে হবে:
ffmpeg -i edv_g24_2.mp4 -i short-video.mp4 -filter_complex "\
[0:v]trim=0:10,setpts=PTS-STARTPTS[v0]; \
[0:a]atrim=0:10,asetpts=PTS-STARTPTS[a0]; \
[1:v]trim=0:5,setpts=PTS-STARTPTS[v1]; \
[1:a]atrim=0:5,asetpts=PTS-STARTPTS[v1]; \
[0:v]trim=15:30,setpts=PTS-STARTPTS[v2]; \
[0:a]atrim=15:30,asetpts=PTS-STARTPTS[a2]; \
[v0][a0][v1][a1][v2][a2]concat=n=3:v=1:a=1[outv][outa]" \
-map "[outv]" -map "[outa]" output.mp4
নোট করুন যে ভিডিও এবং অডিও এই ক্ষেত্রে পুনরায় এনকোড হবে - উপযুক্ত আউটপুট মানের লক্ষ্যগুলি নির্দিষ্ট করা নিশ্চিত করুন (উদাহরণস্বরূপ -crf
x264, x265 বা libvpx-vp9)। আপনি এফএফপিপিগ উইকিতে আরও জানতে পারেন, যেমন ভিপি 9 বা এইচ .264 এর জন্য ।
স্বতন্ত্র বিভাগগুলি ব্যবহার করা
আপনি যদি ক্লিপগুলি বিভক্ত করতে চান এবং পরে তাদের পুনরায় সংযুক্ত করতে চান:
ffmpeg -i edv_g24.mp4 -ss 0 -to 10 -c copy part1.mp4
ffmpeg -i edv_g24.mp4 -ss 10 -to 15 -c copy part2.mp4
ffmpeg -i edv_g24.mp4 -ss 15 -c copy part3.mp4
ffmpeg -i part1.mp4 -i short-video.mp4 -i part3.mp4 -filter_complex \
"[0:v][1:v][2:v]concat=n=3:v=1:a=0[outv]" \
-map "[outv]" -t 30 output.mp4
যদি ফাইলগুলিতে অডিও থাকে তবে উপরের মত একই পদ্ধতি ব্যবহার করুন:
ffmpeg -i part1.mp4 -i short-video.mp4 -i part3.mp4 -filter_complex \
"[0:v][0:a][1:v][1:a][2:v][2:a]concat=n=3:v=1:a=1[outv][outa]" \
-map "[outv]" -map "[outa]" -t 30 output.mp4
এটি আবার ভিডিও স্ট্রিমটিকে পুনরায় এনকোড করবে। এটি কিছুটা সহজবোধ্য তবে অন্যথায় উপরের পদ্ধতির সমতুল্য হওয়া উচিত।
concat
ডেমাক্সার ব্যবহার করে
আপনি নীতিগতভাবে কনট্যাট ডেমাক্সার ব্যবহার করে বিটস্ট্রিমগুলিকে পুনরায় এনকোডিং না করে একত্রিত করার চেষ্টা করতে পারেন। নামক একটি ফাইল তৈরি concat.txt
করুন এবং নিম্নলিখিত এন্ট্রি যুক্ত করুন (উপরে তৈরি ভিডিও ক্লিপগুলির সাথে সম্পর্কিত):
file 'part1.mp4'
file 'short-video.mp4'
file 'part3.mp4'
তারপরে এই স্বতন্ত্র ফাইলগুলিকে একত্রিত করুন:
ffmpeg -f concat -i concat.txt -c copy output.avi
তবে এটির জন্য আপনার ক্লিপগুলির একই কোডেক, রেজোলিউশন, ফ্রেমরেট ইত্যাদি হওয়া দরকার - তাই এটি সমস্ত ধরণের ভিন্ন ভিন্ন উত্সের সাথে কাজ করে না।
concat
প্রোটোকল ব্যবহার করে
উপরের concat
মত একই ধরণের বাধা (একই কোডেক, রেজোলিউশন, ইত্যাদি) এর সাথে প্রোটোকল ব্যবহার করে উপরের ধরণের ফাইল-স্তরের কনটেন্টেশন অর্জন করা যেতে পারে :
ffmpeg -i "concat:part1.avi|part2.avi|part3.avi" -c copy output.mp4
অধিবেশন সম্পর্কিত আরও তথ্যের জন্য, সম্পর্কিত এফএফম্পেগ উইকি পৃষ্ঠাটি পড়ুন ।