ffmpeg ব্যবহার করে 2 টি ভিডিওর মধ্যে ক্রসফেইড


27

আমি ffmpeg ব্যবহার করে 2 টি ভিডিও ক্লিপের মধ্যে ক্রসফেইড রূপান্তর অর্জন করার চেষ্টা করছি তবে এখনও অবধি ব্যর্থ হয়েছি। আমি ffmpeg এ নতুন এবং বেশিরভাগ আমি ডকুমেন্টেশন এবং বিদ্যমান উদাহরণগুলিতে অনলাইনে কী খুঁজে পেতে পারি তা টুইট করার উপর নির্ভর করি। আমি এ পর্যন্ত যা পড়েছি তা থেকে, মিশ্রণ বা ওভারলে ফিল্টারটি ব্যবহার করা আমার পরে যা অর্জন করতে সহায়তা করবে তবে এটি কাজ করার জন্য আমি কমান্ড লাইন বিশদটি বের করতে পারি না।

ফেইড এবং CONCAT ফিল্টারের মহান ভিডিও 2 ফেইড ইন এবং 2 1 ক্লিপ মধ্যে CONCAT, বিবর্ণ-আউট ভিডিও 1 টাইপ ট্রানজিশন কিন্তু আমি কমান্ড কোনো ছাড়াই ভিডিও 2 ভিডিও 1 থেকে উত্তরণের পথে পেতে সাহায্য তারিফ করা চাই মাঝে কালো হতে চলেছে । এই সমস্যার জন্য আমি কোথাও কোনও উদাহরণ খুঁজে পাইনি, সম্ভবত আমি ভুল কীওয়ার্ডগুলি খুঁজছি ...?

আরও স্পষ্টতই, আমার ভিডিওগুলি এমপি 4 এস (এইচ 264 ভিডিও, কোনও শব্দ নেই, এটি গুরুত্বপূর্ণ ক্ষেত্রে), প্রতিটি 5 সেকেন্ড লম্বা এবং আমি প্রায় থেকে একটি স্থানান্তর পরে আছি। ভিডিওর 4.5 থেকে ভিডিও 1 এর 0.5 টি।

এই টিউটোরিয়ালটি এমএলটি এবং ফ্রেমগুলি ব্যবহার করে যা করতে অনুরূপ (উদাহরণস্বরূপ বিবর্ণ হওয়ার জন্য 2:25 দেখুন), যদিও আমি অন্য কোনও প্রগ না ডেকে এফএফপিজেগে এটি করার উপায় খুঁজছি। http://www.youtube.com/watch?v=3PRZ9L_KLdI

এই জাতীয় বিবর্ণ পেতে যে কোনও পয়েন্টার বা সম্ভবত একটি কমান্ড লাইন অনেক প্রশংসা হবে, ধন্যবাদ অনেক ধন্যবাদ!


উত্তর:


23

আমি সেভাবে করার পরামর্শ দিই:

  • একই সময়কাল এবং রেজোলিউশন সহ কালো পটভূমি তৈরি করুন যেমন আউটপুট ভিডিও হওয়া উচিত
  • প্রতিটি ভিডিওতে আলফা চ্যানেল যুক্ত করুন
  • প্রতিটি ভিডিওতে আলফা প্রভাবের সাথে বিবর্ণ যোগ করুন
  • কালো পটভূমি সহ প্রতিটি ভিডিওতে ওভারলে ব্যবহার করুন

সুতরাং প্রতিটি ভিডিও 2 (5 সেকেন্ড) এ ক্রসফ্যাড যুক্ত করার কমান্ডটি হওয়া উচিত:

ffmpeg -i 1.mp4 -i 2.mp4 -f lavfi -i color=black -filter_complex \
"[0:v]format=pix_fmts=yuva420p,fade=t=out:st=4:d=1:alpha=1,setpts=PTS-STARTPTS[va0];\
[1:v]format=pix_fmts=yuva420p,fade=t=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS+4/TB[va1];\
[2:v]scale=960x720,trim=duration=9[over];\
[over][va0]overlay[over1];\
[over1][va1]overlay=format=yuv420[outv]" \
-vcodec libx264 -map [outv] out.mp4

এটি প্রথম ভিডিওটি 1 সেকেন্ড (ডি = 1) এর সময় 4 র্থ সেকেন্ডে (স্ট = 4) আলফায় বিবর্ণ হয়ে যাবে, দ্বিতীয় সেকেন্ডে 0 সেকেন্ডে (সেন্ট = 0) 1 সেকেন্ড (ডি = 1) এর সময় বিবর্ণ হবে এবং এটি প্রদর্শন করবে 4 সেকেন্ডে এগিয়ে সময় (+ 4 / টিবি)। তারপরে আমরা কালো রঙের মাত্র 9 সেকেন্ড কাটা, এটিকে আউটপুট ভিডিও আকারে স্কেল এবং স্টাফটি ওভারলে করে।

আশা করি এটা সাহায্য করবে.


হাই @ptQa, আপনাকে অনেক ধন্যবাদ, ক্রসফেইড এফেক্টটি কবজির মতো কাজ করে। যদিও আউটপুট ভিডিওতে যা ঘটে তা হ'ল এটি কেবল আসল ভিডিওগুলির উপরে একটি শীর্ষ বাম অংশ দেখায় এবং বাকী ফ্রেমটি অনুপস্থিত। আমি রেজোলিউশনে দেখেছি, ইনপুটটি 960 x 720 এবং আউটপুট 320 x 240 তবে এটি পুরো ভিডিওটি স্কেল করে না, পরিবর্তে উপরের বাম দিকে 320 x 240 বিভাগটি কেটে ফেলেছে এবং দেখায় যে বাকি অংশে আউটপুট ইনপুট ভিডিওগুলি অনুপস্থিত। আপনার কমান্ড লাইনে এমন কোনও সংযোজন রয়েছে যা এটি প্রতিরোধ করে?
মুগবা

ওহ, আমি এটি পেয়েছি, আপনি যে রেজোলিউশন পেতে চান তা কালো রঙও স্কেল করা উচিত। আপডেট উত্তর দেখুন। আমি ফিল্টার গ্রাফ স্কেল যোগ করেছি।
পিটিকিউ

এটি সমাধান করেছে, ধন্যবাদ। আমি কেউ নমুনা ভিডিও আপলোড করেছি যাতে ক্রসফিডিং প্রদর্শিত হয় যদি কেউ এটি
কার্যকরভাবে

একই সমস্যা; আমার নিজস্ব কিছু ভিডিওতে এটির কাজ করার একটি বৈকল্পিক রয়েছে - ধন্যবাদ। প্রশ্ন: ভিডিও বিবর্ণের অনুরূপ প্যাটার্ন অনুসরণ করে কীভাবে ভিডিওর অডিও ট্র্যাকগুলি ক্রস-ফেইডে সংশোধন করা হবে?
জিম মিলার

1
বিটিডাব্লু, আমি মনে করি উত্তরের নমুনা কমান্ডে একটি ত্রুটি আছে - এটি হওয়া উচিত -i 1.mp4 -i 2.mp4..., তাই না?
জিম মিলার

7

আমি এইভাবে করেছি:

  • ffmpeg সংস্করণ N-77197-gdf2ce13
  • প্রতিটি 4 সেকেন্ডের 2 টি ভিডিও।
  • এর মধ্যে বিবর্ণ হয়ে এটিতে যোগ দিতে হবে।
  • ভিডিও 25 fps হয়।

1) 1 ম এর শেষে বিবর্ণ আউট (হালকা থেকে অন্ধকার) যুক্ত করুন এবং ২ য় এর অনুরোধে ফেইড ইন (অন্ধকার থেকে আলো):

ffmpeg -i 1.mp4 -y -vf fade=out:76:24 1f.mp4

ffmpeg -i 2.mp4 -y -vf fade=in:0:25 2f.mp4

76:24 এর অর্থ হ'ল ফেইড আউট ফ্রেম 76 শুরু হবে এবং 24 ফ্রেম পরে শেষ হবে = 1 গুলি বিবর্ণ হবে।

0:25 এর অর্থ হ'ল ফেড ইন ফ্রেম 0 শুরু হবে এবং 25 ফ্রেম পরে শেষ করবে।

2) 2 টি ভিডিও মার্জ করুন

সকলকে টিএস-তে রূপান্তর করুন

ffmpeg -i 1f.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts 1f.ts

ffmpeg -i 2f.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts 2f.ts

মার্জ

ffmpeg -i "concat:1f.ts|2f.ts" -bsf:a aac_adtstoasc -c copy output.mp4

ধন্যবাদ:

http://www.bogotobogo.com/FFMpeg/ffmpeg_fade_in_fade_out_transitions_effects_filters.php


6
এটি কোনও ক্রসফেইড নয়।
জ্ঞান

4
মালভিয়া কি বলেছে। অন্য ক্রপফিডের সাথে সাথে ক্রসফেইডের একটি ক্লিপ ফিকে হয়ে যায় first প্রথম ক্লিপটির ক্রসফিডের সময়কালে স্বচ্ছতা অবিচ্ছিন্নভাবে বৃদ্ধি পেয়েছে; দ্বিতীয়টির স্বচ্ছতা অবিচ্ছিন্নভাবে হ্রাস পেয়েছে।
intuited

7

ffmpeg-concat আপনি যা চান তা সম্পাদন করার সহজতম উপায় এবং আপনাকে ডিফল্ট ক্রসফেইড সহ একগুচ্ছ সেক্সি ওপেনএল ট্রানজিশনগুলি ব্যবহার করতে দেয়।

ffmpeg-gl-transration হ'ল একটি কাস্টম ffmpeg ফিল্টার যা আপনাকে দুটি ভিডিও স্ট্রিমের মধ্যে স্বচ্ছন্দে স্থানান্তর করতে GLSL ব্যবহার করতে দেয়। এই তালিকাটি এখানে তালিকাভুক্ত বিকল্পগুলির তুলনায় ব্যবহার এবং কাস্টমাইজ করার ক্ষেত্রে উল্লেখযোগ্যভাবে সহজ।

এই ফিল্টারটি ডিফল্ট ক্রসফেইড হওয়ার সাথে সাথে সংক্রমণের ধরণের একটি বড় তালিকা সমর্থন করে ।

./ffmpeg -i 0.mp4 -i 1.mp4 -filter_complex "gltransition=duration=4:offset=1.5" out.mp4

4
আপনি কি এফএফএমপিগে প্যাচ জমা দেওয়ার কথা বিবেচনা করেছেন?
লগন

1
আমি অবশ্যই করব, আমার কেবল কয়েকটি ছোট সমস্যাগুলি ঠিক করতে হবে এবং আরও আগে পরীক্ষা করা দরকার। ভাল কল!
fisch2

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