সংক্ষিপ্তসার
এইচ .২64 ভিডিওর এমন একটি উচ্চতর ফ্রেম রেট বলে মনে হচ্ছে যাতে আমি উত্তোলনের চেষ্টা করছি এমন ভিডিওর সময়কালে প্রয়োগ করার ক্ষেত্রে একটি স্কেলিং ফ্যাক্টরের প্রয়োজন (900x কম)।
বডি
আমি যে সিনেমাটি থেকে এমপি 4 ফর্ম্যাটে ( হ্যান্ডব্রেক ব্যবহার করে তৈরি করা হয়েছে ) একটি ক্লিপ বের করার চেষ্টা করছি । মেনকোডার এবং ভিএলসি চেষ্টা করার পরে, আমি এফএফম্পেগকে একটি শট দেওয়ার সিদ্ধান্ত নিয়েছি কারণ কোডেকগুলি অনুলিপি করার সময় এটি সবচেয়ে ঝামেলাজনক ছিল। এটি হ'ল মেনকোডার এবং ভিএলসির সাথে তুলনা করে, ফলস্বরূপ ফাইলটি এখনও কুইটটাইমে খেলতে পারা যায় (আমি পেরিয়ান ইত্যাদি সম্পর্কে জানি, আমি কেবল এই সমস্ত কীভাবে কাজ করে তা শিখার চেষ্টা করছি)।
যাইহোক, আমার আদেশটি নিম্নরূপ ছিল:
ffmpeg -ss 01:15:51 -t 00:05:59 -i outofsight.mp4 \
-acodec copy -vcodec copy clip.mp4
অনুলিপি চলাকালীন, নিম্নলিখিতগুলি আসে:
Seems stream 0 codec frame rate differs from container frame rate: 45000.00 (45000/1) -> 25.00 (25/1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from outofsight.mp4':
Duration: 01:57:42.10, start: 0.000000, bitrate: 830 kb/s
Stream #0.0(und): Video: h264, yuv420p, 720x384, 25 tbr, 22500 tbn, 45k tbc
Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, s16
Output #0, mp4, to 'out.mp4':
Stream #0.0(und): Video: libx264, yuv420p, 720x384, q=2-31, 90k tbn, 22500 tbc
Stream #0.1(eng): Audio: libfaac, 48000 Hz, stereo, s16
Stream mapping:
Stream #0.0 -> #0.0
Stream #0.1 -> #0.1
Press [q] to stop encoding
frame= 2591 fps=2349 q=-1.0 size= 8144kB time=101.60 bitrate= 656.7kbits/s
…
5:59 পিরিয়ড ক্লিপের পরিবর্তে, আমি পুরো চলচ্চিত্রটি পাই। সুতরাং, এটি পরীক্ষা করতে, আমি সাথে ffmpeg কমান্ড চালিয়েছি -t 00:00:01
। আমি যা পেয়েছিলাম তা হ'ল একটি 15:00 মিনিটের ক্লিপ। সুতরাং আমি কিছু ব্ল্যাক বাক্স ইঞ্জিনিয়ারিং করেছি এবং -t
1 সেকেন্ডটি 900 সেকেন্ড হিসাবে ব্যাখ্যা করা হলে কোন মানটি লিখতে হবে তা গণনা করে আমার বিকল্পটি স্কেল করার সিদ্ধান্ত নিয়েছি । আমার পছন্দসই 359 গুলি ক্লিপের জন্য, আমি 0.399 গুলি গণনা করেছি এবং তাই আমার ffmpeg আদেশটি হয়ে গেছে:
ffmpeg -ss 01:15.51 -t 00:00:00.399 -i outofsight.mp4 \
-acodec copy -vcodec copy clip.mp4
এটি কাজ করে, তবে কেন সময়কালটি 900 দ্বারা ছোট করা হয় তা আমার কোনও ধারণা নেই further আরও অনুসন্ধান করে দেখা গেছে, প্রতিটি এফএফএমপিগের রেখাটি রয়েছে:
Seems stream 0 codec frame rate differs from container frame rate: 45000.00 (45000/1) -> 25.00 (25/1)
45000/25 = 1800. কোথাও কোনও সম্পর্ক থাকতে হবে। কোনওভাবে, অশ্লীল উচ্চ ফ্রেমের হার সময় নিয়ে সমস্যা তৈরি করছে। কিভাবে ফ্রেম হার এত বেশি? এ সম্পর্কে সর্বোত্তম অংশটি হ'ল ফলস্বরূপ ক্লিপ.এমপি 4 এর একই বৈশিষ্ট্য রয়েছে (অনুলিপি করা ভিডিও কোডেকের কারণে), এবং এর থেকে আরও ক্লিপ নেওয়া -t
সময়কাল বিকল্পের জন্য একই স্কেলিংয়ের প্রয়োজন । অতএব, আমি এটি যাচাই করতে ইচ্ছুক ব্যক্তির জন্য এটি উপলব্ধ করে রেখেছি ।
পরিশিষ্টগুলি
আমার সিস্টেমে ffmpeg এর উপস্থাপক (ম্যাকপোর্টস ffmpeg পোর্ট ব্যবহার করে নির্মিত):
FFmpeg version 0.5, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --prefix=/opt/local --disable-vhook --enable-gpl --enable-postproc --enable-swscale --enable-avfilter --enable-avfilter-lavf --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libdirac --enable-libschroedinger --enable-libfaac --enable-libfaad --enable-libxvid --enable-libx264 --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/gcc-4.2 --arch=x86_64
libavutil 49.15. 0 / 49.15. 0
libavcodec 52.20. 0 / 52.20. 0
libavformat 52.31. 0 / 52.31. 0
libavdevice 52. 1. 0 / 52. 1. 0
libavfilter 1. 4. 0 / 1. 4. 0
libswscale 1. 7. 1 / 1. 7. 1
libpostproc 51. 2. 0 / 51. 2. 0
built on Jan 4 2010 21:51:51, gcc: 4.2.1 (Apple Inc. build 5646) (dot 1)
সম্পাদনা
এটি কোনও ত্রুটি ছিল কিনা তা নিশ্চিত নয় তবে এটি এখনকার আমার ffmpeg সংস্করণে ঠিক করা হয়েছে বলে মনে হচ্ছে, কমপক্ষে এই ভিডিওটির জন্য (ম্যাকপোর্টগুলি থেকে 0.6.1 সংস্করণ)।