কমপক্ষে FFmpeg 2.8.x এ (তবে পুরাতনকেও খুব বেশি কাজ করা উচিত) আপনি lavfi
ইনপুট ফর্ম্যাট এবং জটিল ফিল্টার গ্রাফ হিসাবে movie
এবং setpts
ফিল্টারগুলি -i
বিকল্প হিসাবে যুক্তি হিসাবে ব্যবহার করতে পারেন ।
পরবর্তী কমান্ডটি আপনার জন্য এই কাজটি করছে:
ffmpeg -re -f lavfi -i "movie=filename=input.mp4:loop=0, setpts=N/(FRAME_RATE*TB)" output.mp4
জিরো loop=
আর্গুমেন্ট মানে অনন্ত লুপ। মান বৃহত্তর শূন্য সেট পুনরাবৃত্তি গণনা। setpts
দ্বিতীয় এবং পরবর্তী পুনরাবৃত্তির জন্য পিটিএস সামঞ্জস্য করার জন্য প্রয়োজনীয় ফিল্টারগুলি, অন্যথায় বেশিরভাগ আউটপুট ম্যাক্সারগুলি নন-মোনোটোনিক পিটিএস বৃদ্ধিতে ব্যর্থ হবে: লুপ পিটিএসকে পুনরায় সংযুক্ত করে না।
দ্রষ্টব্য, যে ডিকোডিং / এনকোডিং ছাড়াই বাইপাস ফ্রেমগুলি ধরে নিয়ে ফিল্টারগুলি ব্যবহার করা অসম্ভব: ডিজাইন ফিল্টার কেবল ডিকোডযুক্ত ফ্রেমের সাথেই ডিল করে।
-stream_loop
এফএফএমপেইগ ২.৮.২ এ নতুন ইনপুট বিকল্পটি প্রবর্তিত। আমি প্রথম দেখি এটি আরও সহজ কাজ করে এবং ট্রান্সকোডিং ছাড়াই অনুলিপি কন্টেন্টকে অনুমতি দেয়:
ffmpeg -re -stream_loop -1 -i input.mp4 -c copy -y output.mp4
তবে এটি পিটিএস পুনরায় গণনা করে না এবং আউটপুট ফাইলটি ভুল। আপনি যদি পিটিএস ঠিক করতে ফিল্টার যোগ করেন (দেখুন setpts
) আপনাকে অবশ্যই অপসারণ করতে হবে -c copy
। কেবল বিটস্ট্রিম ফিল্টারগুলি এনকোডযুক্ত প্যাকেটগুলির সাথে ডিল করতে পারে তবে পিটিএস ঠিক করার জন্য কোনও বিটস্ট্রিম ফিল্টার নেই (দেখুন: https://ffmpeg.org/ffmpeg-bitstream-filters.html )
যে কোনও ক্ষেত্রে দ্বিতীয় পাসে ffmpeg ত্রুটি সহ ব্যর্থ হয়:
input.mp4: Resource temporarily unavailable
আমার চারপাশের জ্ঞাত কাজ : পিটিএস সীমা ছাড়াই ইনপুট ফাইলের জন্য ধারক ব্যবহার করুন (স্ট্রিমিং ধারক)। তাদের মধ্যে একজন, আমার পরিচিত, তিনি হলেন এমপিইজি-টিএস। সুতরাং, আপনি আপনার এমপি 4 ফাইলটিকে এমপিইজি-টিএসে রূপান্তর করতে পারবেন:
ffmpeg -i input.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts input.ts
এবং অনন্ত ফাইল রচনা করতে পরবর্তী কমান্ডটি ব্যবহার করুন:
ffmpeg -re -stream_loop -1 -i input.ts -c copy -strict -2 -bsf:a aac_adtstoasc -y output.mp4
(বিটস্ট্রিম ফিল্টারগুলি কেবলমাত্র প্রয়োজন হলে আমার নমুনাগুলিতে প্রয়োজন হয়)
FFmpeg> = 2.8.2 এক্ষেত্রে প্রয়োজন।