অ্যাভনভের সাথে বার্ন-ইন সাবটাইটেলগুলি?


4

আমার একটি এমকেভি ফাইল রয়েছে এবং এটি একটি ডিভিডি সুসংগত এমপিজি ফাইলের সাথে রূপান্তর করতে চাই avconv। একই এমকেভি ফাইল থেকে আমি কীভাবে একটি সাবটাইটেল স্ট্রিম বার্ন-ইন করতে পারি?

avconv -i input.mkv -map 0:0 -map 0:1 -target pal-dvd -aspect 16:9 -q:v 1 -acodec mp2 -ac 2 -ab 128k output.mpg

উত্তর:


5

পাঠ্য-ভিত্তিক সাবটাইটেলগুলি

ffmpeg এর একটি subtitlesফিল্টার রয়েছে যা ভিডিও স্ট্রিমে এসআরটি ফাইলগুলি বার্ন করতে পারে। আপনার --enable-libassযদিও এর সাথে সংকলিত ffmpeg প্রয়োজন । আমি মনে করি না যে লিবাভের কিছু মিল রয়েছে, অন্তত উপলব্ধ ফিল্টারগুলি দেখে

আপনাকে প্রথমে সাবটাইটেলগুলি বের করতে হবে। -map 0:s:0আউটপুটটির জন্য প্রথম সাবটাইটেল স্ট্রিমটি -c:s:0নির্বাচন করে এবং এর জন্য কোডেক নির্বাচন করে - কেবল এটি সত্যই এসআরটি তা নিশ্চিত করার জন্য।

ffmpeg -i input.mkv -an -vn -map 0:s:0 -c:s:0 srt subtitles.srt

তারপরে, এগুলিকে পুড়িয়ে ফেলুন।

ffmpeg -i input.mkv -map 0:0 -map 0:1 -target pal-dvd -aspect 16:9 -q:v 1 \
-c:a mp2 -ac 2 -b:a 128k -filter:v subtitles=subtitles.srt output.mpg

বিঃদ্রঃ:

  • উপরের কমান্ডটি ধরে নিচ্ছে যে স্ট্রিমগুলি 0:0এবং 0:1আপনার ইনপুটটিতে যথাক্রমে ভিডিও এবং অডিও স্ট্রিম রয়েছে। আপনি যদি কেবল সাবটাইটেলগুলিকে আউটপুট ফাইলে অন্তর্ভুক্ত করা থেকে বিরত রাখতে চান তবে আপনি -snসেগুলি পুরোপুরি অক্ষম করতে যোগ করতে পারেন ।

  • আপনাকে এটিকে পরিবর্তন -abকরতে হবে -b:a, যেহেতু পূর্ববর্তীটি ffmpeg এর জন্য একটি বিদ্যমান নেই।


চিত্র-ভিত্তিক সাবটাইটেলগুলি

আপনার ইনপুটটিতে এইচডিএমভি পিজির মতো চিত্র-ভিত্তিক উপশিরোনাম রয়েছে (মনে হয় মেকএমকেভি সেগুলি তৈরি করছে এবং অন্যান্য সরঞ্জামগুলি সেগুলি বের করতে অক্ষম), আপনি এগুলিতে পোড়াতে ওভারলে ফিল্টারটি ব্যবহার করে দেখতে পারেন:

ffmpeg -i input.mkv -filter_complex "[0:v][0:s]overlay[v]" -map [v] -map 0:a \
-target pal-dvd -aspect 16:9 -q:v 1 -c:a mp2 -ac 2 -b:a 128k output.mpg

এটি FFmpeg উইকিতেও ব্যাখ্যা করা হয়েছে

যদি আপনার সাবটাইটেলগুলি মূল চলচ্চিত্রের চেয়ে ভিন্ন মাত্রায় আসে (যেমন ভিডিও স্ট্রিমটি ছোট করা হয়েছিল তবে সাবটাইটেলগুলি ছিল না), আপনি আকার নির্ধারণের বিকল্পটি ব্যবহার করে-canvas_size দেখতে পারেন try


আপনার সহায়তার জন্য ধন্যবাদ তবে নিষ্কাশন কাজ করে না। আমি নিম্নলিখিত ত্রুটি বার্তাটি পেয়েছি "আউটপুট প্রবাহ # 0: 0 এর জন্য এনকোডার খোলার সময় ত্রুটি - সম্ভবত বিট_রেট, হার, প্রস্থ বা উচ্চতা হিসাবে ভুল পরামিতি"। উপশিরোনামটি "সাবটাইটেল: hdmv_pgs_subtitle" হিসাবে ঘোষণা করা হয়েছে। আপনি কি জানেন সমস্যা কি?
ব্যবহারকারী 4811

ধন্যবাদ! আমি এটি চেষ্টা করেছি কিন্তু সাবটাইটেলগুলি উপস্থিত হয় না এবং আমি "সাব 2ভিডিও: আয়তক্ষেত্র উপচে পড়া" বার্তাটি পাই। আমি বুঝতে পেরেছি যে সমস্যাটি হ'ল উত্সটি 1080p থেকে 720p এ রূপান্তরিত হয়েছিল তবে সাবটাইটেলগুলি এখনও 1080p। ওভারলেলিংয়ের আগে কি সাবটাইটেল স্ট্রিমটি 720p এ স্কেল করা সম্ভব?
ব্যবহারকারী 4811

হ্যাঁ, এটি সম্ভব হওয়া উচিত। "[0:s]scale=-1:720[subs];[0:v][subs]overlay[v]"অথবা অন্যকিছু. আমি এখনই এটি পরীক্ষা করতে পারি না, তবে এর মতো কিছু কাজ করা উচিত।
শে

জঘন্য, এখনও "সাব 2ভিডিও: আয়তক্ষেত্র উপচে পড়া" পান এবং আউটপুটে কোনও সাবটাইটেল নেই। এটা ঠিক, নাকি? ffmpeg -i input.mkv -filter_complex "[0: s] স্কেল = -1: 720 [সাব]; [0: ভি] [সাব] ওভারলে [ভি]" -ম্যাপ [ভি] -ম্যাপ 0: এ: 0 - টার্গেট পাল-ডিভিডি -স্পেসেক্ট 16: 9 -কো: ভি 1-সি: একটি এমপি 2 -এক 2-বি: একটি 128 কে আউটপুট.এমপিজি
ব্যবহারকারী 4811

সমাধানটি সাবটাইটেলগুলির জন্য ক্যানভাস নির্দিষ্ট করার জন্য "-ক্যানভাস_সাইজ" পরামিতি। এটি প্রথম পরামিতি হওয়া উচিত!
ব্যবহারকারী 4811
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.