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


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.