Ffmpeg এ, অডিও রূপান্তর না করে কেবল একটি এমপি 4 ভিডিওর অডিওকে কীভাবে বিলম্ব করবেন?


44

আমার .mp4 ফাইলে অডিও বিলম্ব -3840 এমএস। আমি কেএমপ্লেয়ারে এটি সিঙ্ক করেছি এবং আমি .mkv ফাইল তৈরি করতে এমকেভিজিইউআই ব্যবহার করতে চাই না। আমার কেবল অডিওটি -3840 এমএসের মধ্যে বিলম্ব করা দরকার, সমস্ত কিছু অক্ষত।
Ffmpeg ব্যবহার করে এটি সম্পাদন করার জন্য সঠিক আদেশটি কী হবে?
আমি আপনার সাহায্যের প্রশংসা করব

উত্তর:


72

আপনার যদি ভিডিওটি 3.84 সেকেন্ডের মধ্যে দেরি করতে হয়, তবে এটির মতো একটি আদেশ ব্যবহার করুন:

ffmpeg.exe -i "movie.mp4" -itsoffset 3.84 -i "movie.mp4" -map 1:v -map 0:a -c copy "movie-video-delayed.mp4"

আপনার যদি অডিওটি ৩.৪৮ সেকেন্ডের মধ্যে বিলম্ব করতে হয়, তবে এই জাতীয় আদেশটি ব্যবহার করুন:

ffmpeg.exe -i "movie.mp4" -itsoffset 3.84 -i "movie.mp4" -map 0:v -map 1:a -c copy "movie-audio-delayed.mp4"

নিশ্চিত হয়ে নিন যে আপনার ffmpeg বিল্ডটি খুব বেশি পুরানো নয়, 2012 এর চেয়েও নতুন এটি যথেষ্ট।


ব্যাখ্যা

-itsoffset 3.84 -i "movie.mp4"

ইনপুট ফাইলটিতে (মুভি.এমপি 4) অনুসরণ করে সমস্ত স্ট্রিমের টাইমস্ট্যাম্পগুলি 3.84 সেকেন্ডের মধ্যে অফসেট করে।

-map 1:v -map 0:a

প্রথম ইনপুট থেকে দ্বিতীয় (বিলম্বিত) ইনপুট এবং অডিও স্ট্রিম থেকে ভিডিও স্ট্রিম নেয় - উভয় ইনপুট অবশ্যই একই ফাইল হতে পারে।

আরও একটি ভারবস ব্যাখ্যা এখানে পাওয়া যাবে:
http://alien.slackbook.org/blog/fixing-audio-sync-with-ffmpeg/


2
সমস্ত অডিও ট্র্যাক বিলম্ব না করে আপনি কীভাবে একটি নির্দিষ্ট অডিও ট্র্যাক চয়ন করবেন?
ফ্রিডো

1
মানচিত্র বিকল্পের ক্ষমতা ব্যবহার করে । আপনাকে প্রথমে এই কমান্ডগুলির যে কোনও একটি ব্যবহার করে ইনপুট ফাইলে পছন্দসই অডিও স্ট্রিমের সূচকটি সন্ধান করতে হবে: ffprobe.exe "input_file.mp4"বা ধরা ffmpeg.exe -i "input_file.mp4"যাক যে বিলম্বিত অডিও স্ট্রিমের সূচকটি 2 (অর্থাৎ তৃতীয় প্রবাহ) এবং বিলম্বিত ইনপুটটি হ'ল দ্বিতীয়টি (আমার উদাহরণ হিসাবে)। শুধুমাত্র তৃতীয় স্ট্রিমটি বিলম্ব করতে, প্রথম ইনপুট থেকে অন্য সমস্ত স্ট্রিম এবং দ্বিতীয় (বিলম্বিত) ইনপুট থেকে কেবল একটি অডিও স্ট্রিম নিন:-map 0:0 -map 0:1 -map 1:2
ওয়েভার

আমি যে বোঝাতে চাইছি তা সদয় নয়। এই ক্ষেত্রে আমাকে এখনও ffmpeg কল করতে হবে এবং সূচিগুলি অনুসন্ধান করতে ফলাফলগুলি পার্স করতে হবে। -ম্যাপ ইঞ্জিন বলার সমতুল্য কি আছে
ফ্রিডো

ওয়েল, @Freedo, যেমন আপনি ইতিমধ্যেই বলা হয়েছে superuser.com/questions/639402/... , আপনি কি সুপারিশ আসলে সম্ভব হয় স্ট্রিম উল্লেখ : মেটাডেটা মান ব্যবহার করে, যেমন -map 1:m:language:eng তবে মনের মধ্যে ভালুক, এটা সব স্ট্রিম নির্বাচন করব সম্ভবত একাধিক অডিও এবং / অথবা সাবটাইটেল স্ট্রিম সহ মানদণ্ডকে সন্তুষ্ট করা। আপনি স্ট্যাকওভারফ্লো
ওয়েভার

1
আমি যতদূর জানি -c copyপরিবর্তে ব্যবহার করা যাবে -vcodec copy -acodec copy, এবং itsoffsetশুধুমাত্র ভিডিওকে প্রভাবিত তাই হয়তো এই একই কাজ করবে ?: ffmpeg -i "movie.mp4" -itsoffset 3.84 -c copy "movie-video-delayed.mp4"পরিবর্তে অডিও বিলম্ব কেবল সময়কাল করার জন্য একটি নেতিবাচক চিহ্ন যুক্ত করুন: -3.84
মিয়ালিস

0

প্রথম নীরব অডিও করুন:

ffmpeg -f lavfi -i anullsrc=channel_layout=5.1:sample_rate=48000 -t 3 silence_3_sec.mp3

তারপরে কনক্যাট ফাইলগুলি:

ffmpeg -i "concat:silence_3_sec.mp3|input.mp3" -acodec copy out.mp3
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.