এফএফএমপিইজি ভিডিও সংযুক্তকরণের সমস্যা


2

আমি এফএফএমপিজি ব্যবহার করে 2 বা ততোধিক ভিডিও একত্রীকরণ করতে চাই তবে ভিডিওগুলিতে যোগদানের পরে এটিতে অডিও / ভিডিও সিঙ্কিংয়ের সমস্যা রয়েছে, আমি তার জন্য নিম্নলিখিত কোড ব্যবহার করেছি

ffmpeg -i input1.flv -qscale:v 1 intermediate1.mpg
ffmpeg -i input2.flv -qscale:v 1 intermediate2.mpg
ffmpeg -i input3.flv -qscale:v 1 intermediate3.mpg
ffmpeg -i input4.flv -qscale:v 1 intermediate4.mpg
cat intermediate1.mpg intermediate2.mpg intermediate3.mpg intermediate4.mpg > intermediate_all.mpg
ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi

আউটপুট.অভিতে অডিও ট্র্যাকটি ভিডিও ট্র্যাকের আগে রয়েছে।


আপনি কি আবার খেলতে চেষ্টা করেছেন intermediate_all.mpg?

1
ইয়া তবে এটি খেলেছে, তবে সময়কাল সঠিক নয়
এলবি

কারণ হতে পারে। আপনি নিজেই ffmpeg দিয়ে ভিডিওগুলি একত্রিত করার চেষ্টা করেছেন?

কীভাবে আমরা ffmpeg দিয়ে ভিডিওগুলি সংযুক্ত করতে পারি?
এলবি

জানিনা। আপনি এটি গুগল না কেন! :)

উত্তর:


3

এটির catমতো ব্যবহার অনাকাঙ্ক্ষিত সমস্যা তৈরি করতে পারে। ভাগ্যক্রমে, ffmpeg সহ ফাইলগুলি সংযুক্ত করার জন্য দুটি কার্যকর উপায় আছে।

CONCAT ডিমাক্সার

আপনার সমস্ত ইনপুট যদি একই ধরণের ফাইল (একই কোডেক ইত্যাদি) হয় তবে আপনি কনক্যাট ডেমাক্সারটি ব্যবহার করতে পারেন। এটি সম্ভবত আপনার প্রশ্নের আরও কার্যকর উত্তর, যেহেতু এটি -c অনুলিপিটির সাথে সামঞ্জস্যপূর্ণ (এবং সুতরাং এটি নিখুঁত হওয়া উচিত এবং এটি সম্পূর্ণরূপে প্রায় তুচ্ছভাবে স্বল্প সময়ের প্রয়োজন)।

প্রথমে inputs.txtনিম্নলিখিত ফাইল যুক্ত একটি ফাইল তৈরি করুন :

file '/path/to/input1.flv'
file '/path/to/input2.flv'
file '/path/to/input3.flv'
file '/path/to/input4.flv'

তারপরে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

ffmpeg -f concat -i inputs.txt -c copy output.flv

যদি এটি কাজ না করে বা আপনি বিভিন্ন ধরণের ভিডিও একত্র করতে চান তবে আপনি এটি ব্যবহার করতে পারেন

কনক্যাট ফিল্টার

ffmpeg -i input1.flv -i input2.flv -i input3.flv -i input4.flv \
-filter_complex '[0:0] [0:1] [1:0] [1:1] [2:0] [2:1] [3:0] [3:1] concat=n=4:v=1:a=1 [v] [a]' \
-map '[v]' -map '[a]' -c:v libx264 -crf 22 -preset veryfast -c:a libfdk_aac -vbr 3 -afterburner 1 output.mp4

এই উদাহরণটি আমার পছন্দসই এনকোডিং সেটিংস ব্যবহার করে, আপনি যা চান তা ব্যবহার করার জন্য স্পষ্টতই শেষ লাইনটি পরিবর্তন করুন।

এটি অনুসরণ করা আরও সহজ করার জন্য আমি-ফিল্টার_কম্পলেক্স বিভাগটি বিচ্ছেদ করব।

'[0:0] [0:1] [1:0] [1:1] [2:0] [2:1] [3:0] [3:1] 

এই টুকরাটি ffmpeg কে কনক্যাট ফিল্টারে প্রবাহিত করতে প্রবাহিত করে; এই ক্ষেত্রে, ইনপুট 0 থেকে 0 এবং 1 টি স্ট্রিম করে (ffmpeg 0 থেকে গণনা শুরু করে, তাই এটি প্রথম ইনপুট ফাইল থেকে প্রথম এবং দ্বিতীয় স্ট্রিম, ইনপুট 1.flv এই উদাহরণে) এবং প্রতিটি ইনপুট থেকে 0 এবং 1 টি স্ট্রিম পর্যন্ত চতুর্থ (ffmpeg অনুযায়ী ইনপুট 3, যা 0 থেকে গণনা শুরু করে)।

concat=n=4:v=1:a=1 [v] [a]'

এটি নিজেই কনক্যাট ফিল্টার। n = 4 ফিল্টারকে বলছে যে এখানে চারটি ইনপুট ফাইল রয়েছে; v = 1 এটি বলছে যে এখানে একটি ভিডিও স্ট্রিম থাকবে; a = 1 এটি বলছে যে এখানে একটি অডিও স্ট্রিম থাকবে (আমি জানি আমি বলেছি যে ffmpeg 0 থেকে গণনা শুরু করে, তবে দৃশ্যত এই ফিল্টারটির লেখক এটি পরিবর্তে এটি করার সিদ্ধান্ত নিয়েছেন)।

[v] এবং [a] হ'ল বাকি ffmpeg লাইনটি কনক্যাট ফিল্টারের আউটপুট ব্যবহার করার অনুমতি দেওয়ার জন্য আউটপুট স্ট্রিমগুলির নাম। আমি মনে করি তাদের যথেচ্ছ নাম থাকতে পারে; কোনটি ভিডিও এবং কোনটি অডিও সম্ভবত তাদের সম্পর্কিত অবস্থানগুলি দ্বারা নির্ধারিত হয়েছে, তবে আমি এটি পরীক্ষা করে দেখিনি।

নোট করুন যে পুরো ফিল্টার বিভাগের চারপাশে একক উদ্ধৃতি '' প্রয়োজনীয়।

-map '[v]' -map '[a]'

এটি ffmpeg কে সরাসরি ইনপুট ফাইলগুলি থেকে স্ট্রিমের চেয়ে কনক্যাট ফিল্টারের ফলাফলগুলি ব্যবহার করতে বলে tells

নোট করুন যে ফিল্টারগুলি স্ট্রিম অনুলিপিটির সাথে বেমানান; আপনি এই পদ্ধতিতে -c অনুলিপি ব্যবহার করতে পারবেন না। আমি এটিও মনে করি যে এটি নরম সাবটাইটেলগুলি পরিচালনা করতে পারে না, যদিও আমি এটি পরীক্ষা করে দেখিনি: ডকুমেন্টেশনে এটি সম্পর্কে কোনও ইঙ্গিত নেই, তবে ffmpeg ডকুমেন্টেশন প্রায়শই অসম্পূর্ণ বা আবদ্ধ হয়, সুতরাং এটি কোনওভাবেই একটি নিশ্চিত লক্ষণ নয়।

এটি বিভিন্ন ফর্ম্যাটে এনকোডযুক্ত ফাইলগুলি সংযুক্ত করতে পারে (আমি একটি h264 / aac MP4 এবং একটি vpx / vorbis WEBM দিয়ে পরীক্ষা করেছি, পুরোপুরি কাজ করেছি), যদিও তাদের একই ভিডিও ফ্রেমের আকার এবং অডিও গভীরতা হওয়া দরকার (এবং সম্ভবত অন্যান্য জিনিসগুলি) need

এখানেও দেখুন ।

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