দ্রষ্টব্য: আমি অল্প সময়ের আগে স্ট্যাকওভারফ্লোতে একই প্রশ্ন পোস্ট করেছি , যখন আমি এই কম্যুনিটিটি এখনও পাইনি। প্রশ্নটি এই সম্প্রদায়ের পক্ষে আরও উপযুক্ত হওয়ায় আমি এটি পুনরায় পোস্ট করছি।
1. আমি কি চেষ্টা করেছি
আমার কিছু .MTS (AVCHD ফর্ম্যাট) ফাইলগুলি আমার AVCHD ক্যামেরায় পুনরুদ্ধার করেছে । এর স্পেসিফিকেশনটি নীচে দেখানো হয়েছে:
$ ffprobe 140612_Canon-00000.MTS
ffprobe version 2.2.1 Copyright (c) 2007-2014 the FFmpeg developers
(snip)
Input #0, mpegts, from '140612_Canon-00000.MTS':
Duration: 00:48:58.40, start: 0.800300, bitrate: 5563 kb/s
Program 1
Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448),
yuv420p, 1440x1080 [SAR 4:3 DAR 16:9],
29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz,
stereo, fltp, 256 kb/s
ফ্রেমরেট / টাইমবেজের অংশটি মনোযোগ দিন: 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
এখন আমি এই ফাইলটিকে এমপি 4 ফাইলে রূপান্তর করতে চাই , অন্যদিকে H264 ভিডিও স্ট্রিমটিকে পুনরায় এনকোডিং না করে, এর অডিও স্ট্রিমটি এএসি তে ট্রান্সকোড করে । সুতরাং আমি নিম্নলিখিত আদেশটি চেষ্টা করেছিলাম:
ffmpeg -i 140612_Canon-00000.MTS -t 60 -y -vcodec copy -acodec libfaac -ab 128k 140612_Canon-00001.MTS.mp4
2. ফলাফল
এবং আউটপুট ফাইলের স্পেসিফিকেশন নীচে দেখানো হয়েছে:
$ ffprobe 140612_Canon-00000.MTS.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '140612_Canon-00000.MTS.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf55.33.100
Duration: 00:01:00.04, start: 0.021333, bitrate: 4590 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p,
1440x1080 [SAR 4:3 DAR 16:9], 4448 kb/s,
59.94 fps, 59.94 tbr, 90k tbn, 59.94 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D),
48000 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : SoundHandler
ফ্রেমরেট / টাইমবেজের অংশটি দেখুন: 59.94 fps, 59.94 tbr, 90k tbn, 59.94 tbc । যদিও ffmpeg সবেমাত্র ভিডিও স্ট্রিমটি অনুলিপি করেছে, ফ্রেমরেট এবং টাইমবেস দ্বিগুণ মানতে পরিবর্তন করা হয়েছে ।
সুতরাং, আমি যখন কুইকটাইম প্লেয়ার বা ভিএলসি প্লেয়ার দিয়ে আউটপুট ফাইলটি খুলি এবং প্লেব্যাক করি তখন অডিওতে কোনও সমস্যা হয় না, তবে ভিডিও স্ট্রিমটি সঠিকভাবে প্লে হয় না। ভিডিওটি তার ফ্রেমটি সামনে এবং পিছনে চুপি চুপি বারবার বলার সাথে ফিরে প্লে করা হয়।
3. প্রশ্ন
- H264 ভিডিও স্ট্রিমটি সঠিকভাবে পুনরায় এনকোডিং না করে কীভাবে আমি এমএমএস ফাইল (AVCHD) কে fmpmpeg দ্বারা .mp4 রূপান্তর করতে পারি ?
- আমি যখন ধারকটি
ffmpeg
এবং এর-vcodec copy
স্যুইচটি রূপান্তর করি তখন কীভাবে আমি আসল ফ্রেমরেট / টাইমবেস মানগুলি (fps / tbr / tbn / tbc) রাখতে পারি । - ভিডিও স্ট্রিমটিকে পুনরায় এনকোডিং না করে কীভাবে আমি ffmpeg এর কমান্ড লাইন বিকল্পগুলি দিয়ে ফ্রেমরেট / টাইমবেস মান (fps / tbr / tbn / tbc) সেট করতে পারি ।
কোন ধারনা?
4. -r 29.97
বিকল্প যুক্ত করা
প্রফেসর স্পার্কলস আমাকে যুক্ত করার পরামর্শ দিয়েছিলেন -r 29.97
। আমি চেষ্টা করেছিলাম:
ffmpeg -i 140612_Canon-00001.MTS -t 60 -r 29.97 -y -vcodec copy -acodec libfaac -ab 128k 140612_Canon-00001.MTS.mp4
তবে আউটপুট ফাইলটিতে এখনও ফ্রেমরেট / টাইমবেজ ভুল রয়েছে:
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p,
1440x1080 [SAR 4:3 DAR 16:9], 4448 kb/s,
59.94 fps, 59.94 tbr, 11988 tbn, 59.94 tbc (default)
৫. এমপি 4বক্স ব্যবহার করে রিম্যাক্স
প্রফেসর স্পার্কলসের পরামর্শ অনুসারে আমি এমপি 4বক্স ব্যবহার করে ডেমাক্স এবং রিমাক্স চেষ্টা করেছি।
brew install mp4box
ffmpeg -i 140612_Canon-00000.MTS -t 60 -y \
-vcodec copy -an 140612_Canon-00000.MTS.h264
ffmpeg -i 140612_Canon-00000.MTS -t 60 -y \
-vn -acodec libfaac -ab 128k 140612_Canon-00000.MTS.aac
mp4box -add 140612_Canon-00000.MTS.h264:fps=29.97 \
-add 140612_Canon-00000.MTS.aac \
-new 140612_Canon-00000.MTS.mp4
এবং আউটপুট ছিল:
$ ffprobe 140612_Canon-00000.MTS.mp4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '140612_Canon-00000.MTS.mp4':
(snip)
Duration: 00:02:00.22, start: 0.000000, bitrate: 2293 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661),
yuv420p, 1440x1080 [SAR 4:3 DAR 16:9], 2228 kb/s,
29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
Metadata:
creation_time : 2014-07-14 00:38:23
handler_name : 140612_Canon-00000.MTS.h264:fps=29.97
- Imported with GPAC 0.5.0-rev4065
Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 48000 Hz,
stereo, fltp, 125 kb/s (default)
এটি কিছুটা সামনে এগিয়ে দেখায়। ফ্রেমরেট / টাইমবেজের অংশটি দেখুন: 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc । এগুলি (ধারক থেকে টাইমবেস মান) বাদেtbn
মূল স্ট্রিমের সাথে মেলে ।
যাইহোক, আমি যখন কুইকটাইম প্লেয়ার বা ভিএলসির সাহায্যে আউটপুট ফাইলটি খেলি , তখন ভিডিওটি অর্ধ গতিতে ফিরে প্লে হবে ।
যদিও মূল ফাইলটিতে 90k tbn
(প্রতি সেকেন্ডে 90000 টিক্স) রয়েছে এবং এমপি 4বক্সের নতুন আউটপুট ফাইল 30k tbn
যা মূল একের এক-তৃতীয়াংশ মান, আউটপুট ফাইলটি অর্ধ গতিতে ফিরে প্লে হবে।
আমি এর কারণ জানি না। তবে আমি মনে করি বাকী সমস্যাটি আমি কীভাবে tbn
মানটি সামঞ্জস্য করতে পারি ।
5-খ। আউটপুট ফাইলে মিডিয়াআইএনফো-এর প্রতিবেদন
আমি 5 দ্বারা উত্পাদিত আউটপুট ফাইলটিতে মিডিয়াআইনফো সরঞ্জামটিও চেষ্টা করেছি Rem রিমাক্স এমপি 4বক্স ব্যবহার করে । আউটপুটটি এখানে: https://gist.github.com/kaorukobo/c5ab9eaa413dff6cd26a
6. অ্যাঙ্কনভ চেষ্টা করা
ভোলোদ্যা রিপোর্ট avconv
করেছেন ভাল কাজ করেছে। এছাড়াও আমি একই ক্যামেরায় রেকর্ড করা একটি স্বল্প নমুনা মুভি ফাইল (ক্যানন -00006.MTS) প্রস্তুত করেছি। ঠিক আছে, চেষ্টা করুন:
brew install avconv
avconv -i Canon-00006.MTS -c:a copy -c:v copy -y Canon-00006.MTS.mp4
ffprobe Canon-00006.MTS.mp4
আউটপুট ফাইলের ffprobe তথ্য এখানে: https://gist.github.com/kaorukobo/5b53244ade2632ff1211 এবং এর ফ্রেমরেট / টাইমবেস তথ্য নিম্নলিখিত হিসাবে রয়েছে: 59.94 fps, 59.94 tbr, 90k tbn, 59.94 tbc
ভোলড্যা রিপোর্ট করেছে, আউটপুট ফাইলটি ভাল ভিএলসি প্লেয়ারের সাথে ফিরে পেল। যাইহোক, কুইকটাইম প্লেয়ার এক্স দিয়ে এটি খোলার পরে ভিডিওটি স্বাভাবিক গতিতে ফিরে প্লে হয়েছিল তবে তার ফ্রেমের পিছনে চুপচাপ বারবার ছিল।
Why. "ফ্রি এভিসিডিডি থেকে এমওভি" অ্যাপ্লিকেশন কেন কাজ করবেন?
যেমনটি আমি আমার পূর্ববর্তী মন্তব্যে উল্লেখ করেছি , ফ্রি এভিসিডিডি টু এমওভি অ্যাপ্লিকেশনটির "এমওভিতে রি-র্যাপ" বৈশিষ্ট্যটি ভালভাবে কাজ করেছে, যদিও এটি এমপি 4 নয় বরং এমওভি তৈরি করে।
সফ্টওয়্যারটি তার নিজস্ব ffmpeg (বা অ্যাভকনভ) প্রোগ্রামটিকে অভ্যন্তরীণভাবে কল করে এবং আমি দেখেছি এতে কোন বিকল্পগুলি দেওয়া হয়। এটি নীচে প্রদর্শিত হিসাবে:
/Applications/Free AVCHD to Mov.app/Contents/Resources/bin/com.geranium-soft.convert \
-i /path/to/140710_Canon-00003.MTS \
-map 0:0 -map 0:1 -c:a libfaac -vol 256 -b:a 128k -c:v copy \
-sn -movflags faststart -threads 0 -pix_fmt yuv420p -y \
/path/to/140710_Canon-00003.mov
আমি একই বিকল্পগুলি পাস করার চেষ্টা করেছি (এক্সট্রাক্টলি সমান। আমি আউটপুট ধারক প্রকারটি এমওভিতে সেট করেছিলাম এবং এমনকি স্যুইচও সরিয়ে দিয়েছি -t 60
)) এফএফএমপিগ প্রোগ্রাম এবং রূপান্তর করতে। তবে ফলাফল এখনও পর্যন্ত রিপোর্ট হিসাবে একই ছিল ।
যাইহোক, দুর্দান্ত অ্যাপটি "টু। এমপি 4" এবং "দ্বারা ffmpeg" ব্যতীত, "আমি। এমটিএস ফাইল (AVCHD) কে। এমপি 4 এ H264 ভিডিও স্ট্রিমটিকে পুনরায় এনকোডিং না করে কীভাবে রূপান্তর করতে পারি" এ আমার সমস্যাটি সমাধান করেছে। তবে আমি এখনও আগ্রহী যে কেন সেই অ্যাপ্লিকেশনটি ভাল করে তবে এফএফএমপিগটি করে না।