این دستور فرمتهای ffmpeg است که میتواند در ارائهدهنده میزبانی رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیهساز آنلاین ویندوز یا شبیهساز آنلاین MAC OS اجرا شود.
برنامه:
نام
ffmpeg-formats - فرمت های FFmpeg
شرح
این سند فرمت های پشتیبانی شده (muxers و demuxer) ارائه شده توسط سازمان را تشریح می کند
کتابخانه libavformat
FORMAT OPTIONS
کتابخانه libavformat برخی از گزینههای عمومی عمومی را ارائه میکند که میتوانند روی همه آنها تنظیم شوند
موکسرها و دموکسرها. علاوه بر این، هر muxer یا demuxer ممکن است به اصطلاح خصوصی را پشتیبانی کند
گزینه هایی که مخصوص آن جزء هستند.
گزینه ها را می توان با تعیین -انتخاب ارزش در ابزار FFmpeg یا با تنظیم
به صراحت در گزینه های "AVFormatContext" یا با استفاده از libavutil/opt.h API برای
استفاده برنامه ای
لیست گزینه های پشتیبانی شده به شرح زیر است:
پرچم های هوایی پرچم ها (ورودی خروجی)
مقادیر ممکن:
مستقیم
بافر را کاهش دهید.
کاوشگر عدد صحیح (ورودی)
اندازه کاوشگر را بر حسب بایت تنظیم کنید، یعنی اندازه داده ها را برای تجزیه و تحلیل برای دریافت جریان
اطلاعات یک مقدار بالاتر امکان تشخیص اطلاعات بیشتر را در صورت وجود آن فراهم می کند
در جریان پراکنده می شود، اما تاخیر را افزایش می دهد. باید یک عدد صحیح باشد نه کوچکتر
از 32. به طور پیش فرض 5000000 است.
اندازه بسته ها عدد صحیح (تولید)
اندازه بسته را تنظیم کنید
پرچم ها پرچم ها (ورودی خروجی)
پرچم های قالب را تنظیم کنید.
مقادیر ممکن:
ignidx
نادیده گرفتن شاخص
جستجوی سریع
جستجوهای سریع، اما نادرست را برای برخی از قالبها فعال کنید.
genpts
تولید PTS
نوفیلین
مقادیر از دست رفته را که می توان دقیقاً محاسبه کرد را پر نکنید.
ناپارس
AVParsers را غیرفعال کنید، این نیز به "+nofillin" نیاز دارد.
igndts
DTS را نادیده بگیرید.
دور انداختن فاسد
فریم های خراب را دور بریزید.
sortdts
سعی کنید بسته های خروجی را با DTS به هم متصل کنید.
نگهدارنده
داده های جانبی را ادغام نکنید.
latm
RTP MP4A-LATM payload را فعال کنید.
بدون بافر
تأخیر ایجاد شده توسط بافر اختیاری را کاهش دهید
bitexact
فقط داده های مستقل از پلت فرم، ساخت و زمان بنویسید. این آن فایل را تضمین می کند
و جمع های چک داده ها قابل تکرار هستند و بین پلتفرم ها مطابقت دارند. استفاده اولیه آن
برای تست رگرسیون است.
seek2any عدد صحیح (ورودی)
اگر روی 1 تنظیم شده باشد، امکان جستجوی غیرکلید فریمها در سطح demuxer وجود دارد
0 است
تجزیه و تحلیل عدد صحیح (ورودی)
مشخص کنید که چند میکروثانیه برای بررسی ورودی مورد تجزیه و تحلیل قرار می گیرد. ارزش بالاتر خواهد بود
شناسایی اطلاعات دقیق تر را قادر می سازد، اما تاخیر را افزایش می دهد. به صورت پیش فرض می باشد
5,000,000 میکروثانیه = 5 ثانیه.
کلید رمزنگاری شش ضلعی رشته (ورودی)
تنظیم کلید رمزگشایی
شاخص عدد صحیح (ورودی)
حداکثر حافظه مورد استفاده برای فهرست مهر زمانی (در هر جریان) را تنظیم کنید.
rtbufsize عدد صحیح (ورودی)
حداکثر حافظه مورد استفاده برای بافر کردن فریم های بلادرنگ را تنظیم کنید.
fdebug پرچم ها (ورودی خروجی)
چاپ اطلاعات اشکال زدایی خاص
مقادیر ممکن:
ts
max_delay عدد صحیح (ورودی خروجی)
حداکثر تاخیر مخلوط کردن یا دمکس کردن را در میکروثانیه تنظیم کنید.
fpsprobesize عدد صحیح (ورودی)
تعداد فریم های مورد استفاده برای بررسی فریم در ثانیه را تنظیم کنید.
audio_preload عدد صحیح (تولید)
میکروثانیههایی را تنظیم کنید که بستههای صوتی باید زودتر به هم متصل شوند.
chunk_duration عدد صحیح (تولید)
برای هر قطعه میکروثانیه تنظیم کنید.
تکه_اندازه عدد صحیح (تولید)
اندازه را به بایت برای هر تکه تنظیم کنید.
err_detect, f_err_detect پرچم ها (ورودی)
پرچم های تشخیص خطا را تنظیم کنید. "f_err_detect" منسوخ شده است و باید فقط از طریق استفاده شود
la ffmpeg ابزار است.
مقادیر ممکن:
crccheck
CRC های تعبیه شده را تأیید کنید.
جریان گاوداری
انحرافات مشخصات جریان بیت را تشخیص دهید.
بافر
تشخیص طول جریان بیت نامناسب
منفجر شدن
لغو رمزگشایی در تشخیص خطای جزئی.
دقیق
چیزهایی را در نظر بگیرید که مشخصات را نقض می کنند و در طبیعت دیده نشده اند
خطاها
موافق
همه موارد عدم انطباق با مشخصات را به عنوان خطا در نظر بگیرید.
مهاجم
مواردی را که یک رمزگذار منطقی نباید انجام دهد به عنوان یک خطا در نظر بگیرید.
max_interleave_delta عدد صحیح (تولید)
حداکثر مدت زمان بافر را برای interleaving تنظیم کنید. مدت زمان بیان شده است
میکروثانیه، و پیشفرض 1000000 (1 ثانیه) است.
برای اطمینان از اینکه همه استریمها به درستی در هم قرار میگیرند، libavformat تا زمان آن صبر میکند
حداقل یک بسته برای هر جریان قبل از نوشتن هر بسته در جریان دارد
فایل خروجی. هنگامی که برخی از جریان ها "پراکنده" هستند (یعنی شکاف های زیادی بین آنها وجود دارد
بسته های متوالی)، این می تواند منجر به بافر بیش از حد شود.
این فیلد حداکثر تفاوت بین مهرهای زمانی اولین و را مشخص می کند
آخرین بسته در صف muxing، که بالای آن libavformat یک بسته را خروجی خواهد کرد.
صرف نظر از اینکه بسته ای را برای همه استریم ها در صف قرار داده است یا خیر.
اگر روی 0 تنظیم شود، libavformat به بافر کردن بسته ها ادامه می دهد تا زمانی که یک بسته برای داشته باشد
هر جریان، صرف نظر از حداکثر تفاوت تمبر زمانی بین بافر شده
بسته ها
use_wallclock_as_timestamps عدد صحیح (ورودی)
از ساعت دیواری به عنوان مهر زمان استفاده کنید.
اجتناب از_منفی_تها عدد صحیح (تولید)
مقادیر ممکن:
ساختن_غیر_منفی
مهرهای زمانی را تغییر دهید تا غیرمنفی شوند. همچنین توجه داشته باشید که این فقط تاثیر می گذارد
مُهرهای زمانی منفی پیشرو، و نه مهرهای زمانی منفی غیر یکنواخت.
make_zero
مهرهای زمانی را جابجا کنید تا اولین مهر زمانی 0 باشد.
خودکار (به طور پیش فرض)
جابجایی را در صورت نیاز قالب هدف فعال می کند.
غیر فعال
جابجایی مهر زمانی را غیرفعال می کند.
هنگامی که جابجایی فعال است، تمام مهرهای زمانی خروجی به همان میزان جابهجا میشوند. سمعی،
ویدئو، و همگامسازی زیرنویسها و تفاوتهای نسبی مهر زمانی حفظ میشوند
در مقایسه با اینکه بدون جابجایی چگونه بودند.
skip_initial_bytes عدد صحیح (ورودی)
اگر روی 1 تنظیم شده باشد، تعداد بایت هایی را تنظیم کنید که قبل از خواندن سرصفحه و فریم ها رد شوند. پیش فرض
0.
correct_ts_overflow عدد صحیح (ورودی)
اگر روی 1 تنظیم شود، سرریزهای تک مهر زمانی را تصحیح کنید. پیشفرض 1 است.
flush_packets عدد صحیح (تولید)
پس از هر بسته، جریان ورودی/خروجی زیرین را شستشو دهید. پیشفرض 1 آن را فعال میکند و دارای آن است
اثر کاهش تاخیر؛ 0 آن را غیرفعال می کند و ممکن است کمی عملکرد را افزایش دهد
بعضی موارد
output_ts_offset چاپ افست (تولید)
افست زمان خروجی را تنظیم کنید.
چاپ افست باید مشخصات مدت زمان باشد، ببینید la زمان مدت بخش in la
ffmpeg-utils(1) کتابچه راهنمای.
افست توسط muxer به مُهرهای زمانی خروجی اضافه می شود.
تعیین یک افست مثبت به این معنی است که جریان های مربوطه با تاخیر مواجه می شوند
مدت زمان مشخص شده در چاپ افست. مقدار پیش فرض 0 است (به این معنی که هیچ افست وجود ندارد
کاربردی).
فرمت_لیست سفید فهرست (ورودی)
"," از هم جدا فهرست دمکسرهای مجاز. به طور پیش فرض همه مجاز هستند.
dump_separator رشته (ورودی)
جداکننده برای جدا کردن فیلدهای چاپ شده در خط فرمان در مورد جریان استفاده می شود
مولفه های. به عنوان مثال برای جدا کردن فیلدها با خطوط جدید و تورفتگی:
ffprobe -dump_separator "
" -من ~/videos/matrixbench_mpeg2.mpg
قالب جریان مشخصات
مشخصکنندههای جریان قالببندی، امکان انتخاب یک یا چند جریان را میدهند که با موارد خاص مطابقت دارند
خواص.
اشکال احتمالی مشخص کننده های جریان عبارتند از:
stream_index
جریان را با این شاخص مطابقت می دهد.
stream_type[:stream_index]
stream_type یکی از موارد زیر است: 'v' برای ویدیو، 'a' برای صدا، 's' برای زیرنویس، 'd'
برای داده ها، و 't' برای پیوست ها. اگر stream_index داده می شود، سپس با آن مطابقت دارد
شماره جریان stream_index از این نوع در غیر این صورت، با تمام جریان های این مطابقت دارد
تایپ کنید
p:برنامه_id[:stream_index]
If stream_index داده می شود، سپس جریان را با شماره مطابقت می دهد stream_index در
برنامه با شناسه برنامه_id. در غیر این صورت، با تمام جریان های برنامه مطابقت دارد.
#stream_id
جریان را با یک شناسه فرمت خاص مطابقت می دهد.
معنای دقیق مشخصکنندههای جریان توسط
تابع "avformat_match_stream_specifier()" اعلام شده در libavformat/avformat.h
سرتیتر.
DEMUXERS
Demuxer عناصر پیکربندی شده ای در FFmpeg هستند که می توانند جریان های چند رسانه ای را از a بخوانند
نوع خاصی از فایل
وقتی بیلد FFmpeg خود را پیکربندی میکنید، تمام demuxerهای پشتیبانیشده بهطور پیشفرض فعال میشوند.
می توانید با استفاده از گزینه پیکربندی "--list-demuxers" همه موارد موجود را فهرست کنید.
می توانید با استفاده از گزینه پیکربندی "--disable-demuxers"، همه دموکسرها را غیرفعال کنید
به طور انتخابی یک demuxer واحد را با گزینه "--enable-demuxer=" فعال کنیدDEMUXER"، یا غیرفعال کنید
آن را با گزینه "--disable-demuxer=DEMUXER".
گزینه "-formats" ابزارهای ff* لیستی از دموکسرهای فعال را نمایش می دهد.
شرح برخی از دموکسرهای موجود در حال حاضر در ادامه آمده است.
aa
فرمت صوتی 2، 3، و 4 دمکسر.
این demuxer برای demux Audible Format 2، 3، و 4 (.aa) فایل ها استفاده می شود.
applehttp
دموکسر HTTP Live Streaming Apple.
این demuxer تمام AVStream ها را از همه جریان های مختلف ارائه می دهد. فیلد id روی عدد تنظیم شده است
عدد شاخص نوع بیت ریت با تنظیم پرچم های رد کردن در AVStreams (با فشار دادن 'a'
یا 'v' در ffplay)، تماس گیرنده می تواند تصمیم بگیرد که کدام نوع جریان را واقعاً دریافت کند. در
نرخ بیت کل متغیری که جریان به آن تعلق دارد در یک کلید فراداده موجود است
با نام "variant_bitrate".
apng
دمکسر گرافیک شبکه قابل حمل متحرک.
این demuxer برای demux فایل های APNG استفاده می شود. همه سرصفحه ها، به جز امضای PNG، تا (اما
بدون احتساب) اولین تکه fcTL به عنوان داده های اضافی منتقل می شود. سپس فریم ها تقسیم می شوند
به عنوان تمام تکه های بین دو قطعه fcTL یا بین آخرین تکه های fcTL و IEND.
-ignore_loop بول
در صورت تنظیم، متغیر حلقه را در فایل نادیده بگیرید.
-max_fps INT
حداکثر نرخ فریم در فریم در ثانیه (0 بدون محدودیت).
-default_fps INT
نرخ فریم پیشفرض در فریم در ثانیه زمانی که هیچکدام در فایل مشخص نشده باشد (به معنی 0
به همان سرعتی که ممکن است).
ASF
سیستم های پیشرفته فرمت demuxer.
این demuxer برای demux فایل های ASF و جریان های شبکه MMS استفاده می شود.
-no_resync_search بول
سعی نکنید با جستجوی یک کد شروع اختیاری خاص، دوباره همگام سازی کنید.
concat
دموکسر اسکریپت الحاق مجازی.
این دیموکس لیستی از فایل ها و دستورالعمل های دیگر را از یک فایل متنی می خواند و آنها را دموکس می کند
یکی پس از دیگری، گویی تمام بسته های آنها با هم مخلوط شده است.
مُهرهای زمانی موجود در فایلها به گونهای تنظیم میشوند که اولین فایل از 0 شروع شود و هر فایل بعدی
فایل از جایی شروع می شود که فایل قبلی تمام می شود. توجه داشته باشید که به صورت جهانی انجام می شود و ممکن است باعث شود
شکاف ها اگر تمام جریان ها دقیقاً طول یکسانی نداشته باشند.
همه فایل ها باید جریان های یکسانی داشته باشند (کدک های یکسان، پایگاه زمانی یکسان و غیره).
مدت زمان هر فایل برای تنظیم مُهرهای زمانی فایل بعدی استفاده میشود: اگر
مدت زمان نادرست است (زیرا با استفاده از نرخ بیت محاسبه شده است یا اینکه فایل
برای مثال کوتاه شده)، می تواند باعث ایجاد مصنوعات شود. از دستورالعمل "مدت" می توان استفاده کرد
مدت زمان ذخیره شده در هر فایل را لغو کنید.
نحو
این اسکریپت یک فایل متنی در Extended-ASCII است که در هر خط یک دستور وجود دارد. خطوط خالی،
فضاهای اصلی و خطوطی که با "#" شروع می شوند نادیده گرفته می شوند. بخشنامه زیر است
شناسایی شده:
"فایل مسیر"
مسیر فایل برای خواندن؛ از کاراکترها و فضاهای خاص باید با اسلش فرار کرد
یا نقل قول های تک
همه دستورالعمل های مرتبط با فایل بعدی در مورد آن فایل اعمال می شود.
"ffconcat نسخه 1.0 "
نوع و نسخه اسکریپت را مشخص کنید. همچنین تنظیم می کند امن اگر قرار بود گزینه 1 باشد
پیش فرض آن -1.
برای اینکه FFmpeg فرمت را به طور خودکار تشخیص دهد، این دستورالعمل باید دقیقاً ظاهر شود
همانطور که هست (بدون فضای اضافی یا بایت-ترتیب علامت) در همان خط اول اسکریپت.
"مدت زمان دور"
مدت زمان فایل. این اطلاعات را می توان از فایل مشخص کرد. مشخص کردن آن
اگر اطلاعات فایل در دسترس نباشد، اینجا ممکن است کارآمدتر باشد یا کمک کند
یا دقیق
اگر مدت زمان برای همه فایل ها تنظیم شده باشد، امکان جستجو در کل وجود دارد
ویدیوی پیوسته
"در اشاره برچسب زمان"
در نقطه ای از فایل هنگامی که demuxer فایل را باز می کند، فوراً به دنبال آن است
مهر زمانی مشخص شده جستجو انجام می شود تا همه جریان ها با موفقیت ارائه شوند
در نقطه.
این دستورالعمل با کدکهای درون فریم بهتر کار میکند، زیرا برای کدکهای غیر درون فریم
شما معمولاً بسته های اضافی قبل از نقطه واقعی و محتوای رمزگشایی شده دریافت خواهید کرد
به احتمال زیاد حاوی فریم های قبل از In point نیز خواهد بود.
برای هر فایل، بسته های قبل از فایل In point دارای مهر زمانی کمتر از
مهر زمانی شروع محاسبه شده فایل (در مورد اولین فایل منفی) و
مدت زمان فایل ها (اگر در بخشنامه "مدت" مشخص نشده باشد) کاهش می یابد
بر اساس آنها در نقطه مشخص شده است.
به دلیل بستههای بالقوه قبل از نقطه مشخص شده، مُهرهای زمانی بسته ممکن است
همپوشانی بین دو فایل به هم پیوسته
"نقطه خروج برچسب زمان"
نقطه خارج از فایل هنگامی که demuxer به مهر زمانی رمزگشایی مشخص شده رسید
هر یک از جریانها، آن را بهعنوان وضعیت پایان فایل مدیریت میکند و جریان را رد میکند
و تمام بسته های باقی مانده از همه جریان ها.
نقطه خروج انحصاری است، به این معنی که demuxer بسته هایی را با a خروجی نمی دهد
تمبر زمانی رمزگشایی بزرگتر یا مساوی با نقطه خروجی.
این دستورالعمل با کدکهای درون فریم و فرمتهایی که همه جریانها در آن هستند، بهترین کار را دارد
به شدت در هم آمیخته شده است. برای کدک های غیر درون فریم معمولاً اضافی دریافت خواهید کرد
بسته های دارای مهر زمانی ارائه پس از نقطه خروج، بنابراین محتوای رمزگشایی شده خواهد بود
به احتمال زیاد شامل فریم هایی بعد از نقطه خروج نیز می شود. اگر جریان های شما محکم نیستند
ممکن است تمام بستهها را از تمام جریانها قبل از Out point و شما دریافت نکنید
ممکن است فقط میتواند اولین جریان را تا نقطه خروج رمزگشایی کند.
مدت زمان فایل ها (در صورتی که در بخشنامه «دوره» مشخص نشده باشد) خواهد بود
بر اساس نقطه خروجی مشخص شده آنها کاهش می یابد.
"file_packet_metadata کلید = ارزش"
فراداده های بسته های فایل. ابرداده مشخص شده برای هر فایل تنظیم می شود
بسته شما می توانید این دستورالعمل را چندین بار برای افزودن چند متادیتا مشخص کنید
ورودی های.
"جریان"
یک جریان در فایل مجازی معرفی کنید. همه دستورالعمل های مرتبط با جریان بعدی
برای آخرین جریان معرفی شده اعمال شود. برخی از ویژگی های جریان باید به منظور تنظیم شوند
امکان شناسایی جریان های منطبق در زیر فایل ها را فراهم می کند. اگر هیچ جریانی در
اسکریپت، جریان های فایل اول کپی می شوند.
"exact_stream_id id"
شناسه جریان را تنظیم کنید. اگر این دستورالعمل داده شود، رشته با
شناسه مربوطه در زیر فایل ها استفاده خواهد شد. این به ویژه برای MPEG-PS مفید است
فایلهای (VOB)، که ترتیب جریانها قابل اعتماد نیست.
گزینه
این دموکسر گزینه زیر را می پذیرد:
امن
اگر روی 1 تنظیم شده است، مسیرهای فایل ناامن را رد کنید. اگر مسیر فایل ایمن نباشد، در نظر گرفته می شود
حاوی مشخصات پروتکل است و نسبی است و همه اجزا فقط شامل هستند
کاراکترهای مجموعه کاراکترهای قابل حمل (حروف، اعداد، نقطه، زیرخط و
خط تیره) و در ابتدای یک جزء نقطه نقطه ندارند.
اگر روی 0 تنظیم شود، هر نام فایل پذیرفته می شود.
پیش فرض -1 است، اگر فرمت به طور خودکار کاوش شود معادل 1 و 0 است
در غیر این صورت.
تبدیل_خودکار
اگر روی 1 تنظیم شده است، سعی کنید تبدیل های خودکار را روی داده های بسته انجام دهید تا جریان ها ایجاد شوند
قابل الحاق پیش فرض 1 است.
در حال حاضر، تنها تبدیل، افزودن فیلتر بیت استریم h264_mp4toannexb به
H.264 در فرمت MP4 پخش می شود. این امر به ویژه در صورت وجود قطعنامه ضروری است
تغییرات.
flv
دمکسر Adobe Flash Video Format.
این demuxer برای demux فایل های FLV و جریان های شبکه RTMP استفاده می شود.
-flv_metadata بول
استریم ها را بر اساس محتوای آرایه onMetaData تخصیص دهید.
libgme
کتابخانه Game Music Emu مجموعه ای از شبیه ساز فایل های موسیقی بازی های ویدیویی است.
دیدنhttp://code.google.com/p/game-music-emu/> برای اطلاعات بیشتر
برخی از فایل ها دارای چندین آهنگ هستند. demuxer به طور پیش فرض اولین آهنگ را انتخاب می کند. در
track_index می توان از گزینه برای انتخاب یک آهنگ مختلف استفاده کرد. ایندکس آهنگ از 0 شروع می شود
demuxer تعداد آهنگ ها را به عنوان صادر می کند آهنگ ورود داده های متا
برای فایل های بسیار بزرگ، حداکثر_اندازه ممکن است گزینه باید تنظیم شود.
لیبکی
پخش رسانه از خدمات اینترنتی با استفاده از پروژه quvi.
دموکسر الف را می پذیرد قالب گزینه ای برای درخواست کیفیت خاص به طور پیش فرض روی تنظیم شده است
بهترین.
دیدنhttp://quvi.sourceforge.net/> برای اطلاعات بیشتر
FFmpeg باید با "--enable-libquvi" ساخته شود تا این demuxer فعال شود.
GIF
دمکسر متحرک GIF.
گزینه های زیر را می پذیرد:
حداقل_تاخیر
حداقل تاخیر معتبر بین فریم ها را در صدم ثانیه تنظیم کنید. محدوده 0 تا است
6000. مقدار پیش فرض 2 است.
max_gif_delay
حداکثر تاخیر معتبر بین فریم ها را در صدم ثانیه تنظیم کنید. محدوده 0 تا است
65535. مقدار پیش فرض 65535 است (نزدیک به یازده دقیقه)، حداکثر مقدار مجاز توسط
مشخصات
default_delay
تأخیر پیش فرض بین فریم ها را در صدم ثانیه تنظیم کنید. محدوده 0 تا 6000
مقدار پیش فرض 10 است.
ignore_loop
فایلهای GIF میتوانند حاوی اطلاعاتی باشند که به تعداد معینی (یا بی نهایت) حلقه بزنند.
If ignore_loop روی 1 تنظیم می شود، سپس تنظیمات حلقه از ورودی نادیده گرفته می شود و
حلقه زدن رخ نخواهد داد. اگر روی 0 تنظیم شود، حلقه زدن رخ می دهد و عدد را چرخه می کند
بارها با توجه به GIF. مقدار پیش فرض 1 است.
به عنوان مثال، با فیلتر همپوشانی، یک GIF بی نهایت حلقه را روی ویدیوی دیگری قرار دهید:
ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex overlay=shorttest=1 out.mkv
توجه داشته باشید که در مثال بالا از کوتاهترین گزینه برای فیلتر همپوشانی برای پایان دادن به استفاده شده است
خروجی ویدیو در طول کوتاهترین فایل ورودی، که در این مورد است ورودی.mp4 as
GIF در این مثال بی نهایت حلقه می شود.
image2
دمکسر فایل تصویری
این دموکسر از لیستی از فایل های تصویری مشخص شده توسط یک الگو می خواند. نحو و
معنی الگو توسط گزینه مشخص می شود نوع_ الگو.
این الگو ممکن است حاوی پسوندی باشد که برای تعیین خودکار قالب استفاده می شود
تصاویر موجود در فایل ها
اندازه، فرمت پیکسل و فرمت هر تصویر باید برای همه یکسان باشد
فایل ها به ترتیب
این دموکسر گزینه های زیر را می پذیرد:
نرخ فریم
نرخ فریم را برای جریان ویدئو تنظیم کنید. پیش فرض آن 25 است.
حلقه
اگر روی 1 تنظیم شده است، روی ورودی حلقه بزنید. مقدار پیش فرض 0 است.
نوع_ الگو
نوع الگوی مورد استفاده برای تفسیر نام فایل ارائه شده را انتخاب کنید.
نوع_ الگو یکی از مقادیر زیر را می پذیرد.
هیچ
تطابق الگو را غیرفعال کنید، بنابراین ویدیو فقط حاوی موارد مشخص شده خواهد بود
تصویر اگر نمی خواهید دنباله هایی از آن ایجاد کنید، باید از این گزینه استفاده کنید
چندین تصویر و نام فایل شما ممکن است دارای کاراکترهای الگوی خاصی باشد.
دنباله
یک نوع الگوی دنباله ای را انتخاب کنید که برای تعیین دنباله ای از فایل های نمایه شده توسط استفاده می شود
اعداد متوالی
یک الگوی دنباله ممکن است حاوی رشته "%d" یا "%0 باشدNd" که مشخص می کند
موقعیت کاراکترهایی که یک عدد متوالی را در هر نام فایل نشان می دهند
مطابق با الگو اگر فرم "%d0Nd" استفاده می شود، رشته ای که نشان دهنده آن است
شماره در هر نام فایل 0-padd شده است و N تعداد کل ارقام دارای 0 است
نشان دهنده عدد کاراکتر تحت اللفظی '%' را می توان در الگو مشخص کرد
با رشته "%%".
اگر الگوی دنباله حاوی "%d" یا "%0 باشدNd"، اولین نام فایل فایل
لیستی که توسط الگو مشخص شده است باید شامل یک عدد باشد که بین آنها وجود دارد
شروع_شماره و شروع_شماره+start_number_range-1 و تمام اعداد زیر
باید متوالی باشد
برای مثال الگوی "img-%03d.bmp" با دنباله ای از نام فایل ها مطابقت دارد.
فرم img-001.bmp, img-002.bmp، ... ، img-010.bmp، و غیره.؛ الگو
"i%%m%%g-%d.jpg" loading="lazy" با دنباله ای از نام فایل های فرم مطابقت دارد i%m%g-1.jpg,
i%m%g-2.jpg، ... ، i%m%g-10.jpg، و غیره
توجه داشته باشید که الگو لزوماً نباید حاوی «%d» یا «%0» باشدNd، به عنوان مثال به
تبدیل یک فایل تصویری img.jpeg می توانید از دستور استفاده کنید:
ffmpeg -i img.jpeg img.png
کره
یک نوع الگوی عام glob را انتخاب کنید.
این الگو مانند یک الگوی "glob()" تفسیر می شود. این فقط در صورتی قابل انتخاب است که
libavformat با پشتیبانی globbing گردآوری شد.
glob_sequence (منسوخ، اراده be حذف شده)
یک الگوی عام / دنباله کروی مخلوط را انتخاب کنید.
اگر نسخه libavformat شما با پشتیبانی globbing کامپایل شده است، و
الگوی ارائه شده حاوی حداقل یک کاراکتر متای glob در میان "%*?[]{}" است
قبل از یک "%" بدون فرار، الگو مانند یک الگوی "glob()" تفسیر می شود.
در غیر این صورت مانند یک الگوی توالی تفسیر می شود.
همه کاراکترهای ویژه glob "%*?[]{}" باید با "%" پیشوند شوند. برای فرار a
به معنای واقعی کلمه "%" باید از "%%" استفاده کنید.
به عنوان مثال الگوی "foo-%*.jpeg" با تمام نام های فایل های پیشوند شده مطابقت دارد
"foo-" و پایان دادن به ".jpeg"، و "foo-%?%?%?.jpeg" با تمام موارد مطابقت دارد.
نام فایل ها با پیشوند "foo-"، و به دنبال آن یک دنباله از سه کاراکتر، و
با ".jpeg" خاتمه می یابد.
این نوع الگو به نفع منسوخ شده است کره و دنباله.
مقدار پیش فرض است glob_sequence.
pixel_format
فرمت پیکسلی تصاویر را برای خواندن تنظیم کنید. اگر مشخص نیست فرمت پیکسل است
از اولین فایل تصویری در دنباله حدس زد.
شروع_شماره
فهرست فایل مطابق با الگوی فایل تصویر را تنظیم کنید تا خواندن از آن شروع شود.
مقدار پیش فرض 0 است.
start_number_range
محدوده بازه فهرست را تنظیم کنید تا هنگام جستجوی اولین فایل تصویری بررسی شود
دنباله، شروع از شروع_شماره. مقدار پیش فرض 5 است.
ts_from_file
اگر روی 1 تنظیم شود، نشان زمانی فریم را روی زمان تغییر فایل تصویر تنظیم می کند. توجه داشته باشید که
یکنواختی مهرهای زمانی ارائه نشده است: تصاویر به همان ترتیبی پیش می روند که بدون آن
گزینه. مقدار پیشفرض 0 است. اگر روی 2 تنظیم شود، مُهر زمانی فریم برای اصلاح تنظیم میشود
زمان فایل تصویری با دقت نانوثانیه
اندازه_ویدئو
اندازه ویدیوی تصاویر را برای خواندن تنظیم کنید. اگر مشخص نشده باشد اندازه ویدیو حدس زده می شود
از اولین فایل تصویر در دنباله.
مثال ها
· استفاده کنید ffmpeg برای ایجاد یک ویدیو از تصاویر در دنباله فایل IMG-001.jpeg,
IMG-002.jpeg، ...، با فرض نرخ فریم ورودی 10 فریم در ثانیه:
ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
همانطور که در بالا ذکر شد، اما با خواندن یک فایل با نمایه 100 به ترتیب شروع کنید:
ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
· خواندن تصاویر منطبق با الگوی glob "*.png" loading="lazy"، که تمام فایلها به پایان میرسند
پسوند ".png" loading="lazy":
ffmpeg -framerate 10 -pattern_type glob -i "*.png" loading="lazy" out.mkv
mov/mp4/3gp/Quicktme
دمکسر Quicktime / MP4.
این دموکسر گزینه های زیر را می پذیرد:
enable_drefs
بارگیری آهنگ های خارجی را فعال کنید، به طور پیش فرض غیرفعال است. فعال کردن این می تواند
از نظر تئوری اطلاعات در برخی موارد استفاده نشت می کند.
use_absolute_path
بارگیری مسیرهای خارجی را از طریق مسیرهای مطلق که به طور پیش فرض غیرفعال شده است، اجازه می دهد. را قادر می سازد
این یک خطر امنیتی است. فقط در صورتی باید فعال شود که منبع غیر شناخته شده باشد
بدخواه
mpegts
دمکسر جریان حمل و نقل MPEG-2.
این دموکسر گزینه های زیر را می پذیرد:
resync_size
برای جستجوی همگامسازی جدید، محدودیت اندازه تنظیم کنید. مقدار پیش فرض 65536 است.
fix_teletext_pts
مقادیر PTS و DTS بسته تله تکست را با مهرهای زمانی محاسبه شده از
PCR اولین برنامه ای که جریان تله تکست بخشی از آن است و کنار گذاشته نمی شود.
مقدار پیش فرض 1 است، اگر می خواهید بسته تله تکست PTS و DTS خود را داشته باشید، این گزینه را روی 0 تنظیم کنید.
ارزش های دست نخورده
ts_packetsize
گزینه خروجی که اندازه بسته خام را بر حسب بایت حمل می کند. بسته خام شناسایی شده را نشان دهید
اندازه، توسط کاربر قابل تنظیم نیست.
scan_all_pmts
همه PMT ها را اسکن و ترکیب کنید. مقدار یک عدد صحیح با مقدار -1 تا 1 است (-1 به معنی
تنظیم خودکار، 1 به معنای فعال، 0 به معنای غیرفعال است). مقدار پیش فرض -1 است.
ویدیوی خام
دمکسر ویدئویی خام.
این دیموکسر به شخص اجازه می دهد تا داده های ویدئویی خام را بخواند. از آنجایی که هیچ هدری وجود ندارد که آن را مشخص کند
پارامترهای ویدئویی فرض شده، کاربر باید آنها را مشخص کند تا بتواند رمزگشایی کند
داده ها به درستی
این دموکسر گزینه های زیر را می پذیرد:
نرخ فریم
تنظیم نرخ فریم ویدیوی ورودی مقدار پیش فرض 25 است.
pixel_format
فرمت پیکسل ویدیوی ورودی را تنظیم کنید. مقدار پیش فرض "yuv420p" است.
اندازه_ویدئو
اندازه ویدیوی ورودی را تنظیم کنید. این مقدار باید به صراحت مشخص شود.
به عنوان مثال برای خواندن یک فایل rawvideo ورودی.خام با ffplay، با فرض فرمت پیکسلی
"rgb24"، اندازه ویدئو "320x240" و نرخ فریم 10 تصویر در ثانیه، از
فرمان:
ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw
sbg
دموکس کننده اسکریپت SBaGen.
این demuxer زبان اسکریپت مورد استفاده SBaGen را می خواندhttp://uazu.net/sbagen/> به
ایجاد جلسات ضربان دو گوش. یک اسکریپت SBG به این صورت است:
-اگر
a: 300-2.5/3 440+4.5/0
b: 300-2.5/0 440+4.5/3
خاموش: -
اکنون == a
+0:07:00 == ب
+0:14:00 == a
+0:21:00 == ب
+0:30:00 تخفیف
یک اسکریپت SBG می تواند مهر زمانی مطلق و نسبی را با هم ترکیب کند. اگر اسکریپت فقط از یکی استفاده می کند
مهرهای زمانی مطلق (از جمله زمان شروع اسکریپت) یا فقط موارد نسبی، سپس آن
طرح ثابت است، و تبدیل ساده است. از طرفی اگر فیلمنامه
هر دو نوع مهر زمان را مخلوط می کند، سپس کن مرجع برای مهرهای زمانی نسبی خواهد بود
از زمان فعلی روز در زمان خواندن اسکریپت و طرح اسکریپت گرفته شده است
با توجه به آن مرجع منجمد خواهد شد. یعنی اگر فیلمنامه مستقیم باشد
بازی، زمان واقعی با مهر زمانی مطلق تا کنترل کننده صدا مطابقت دارد
دقت ساعت، اما اگر کاربر به نحوی پخش را متوقف کند یا به دنبال آن باشد، همه زمان ها خواهد بود
بر این اساس جابجا شد.
متن های متنی
زیرنویس JSON استفاده می شودhttp://www.ted.com/>.
TED پیوندهایی به شرح ها ارائه نمی دهد، اما می توان آنها را از صفحه حدس زد. در
پرونده tools/bookmarklets.html از درخت منبع FFmpeg حاوی یک نشانک برای افشا است
آنها.
این دموکسر گزینه زیر را می پذیرد:
زمان شروع
زمان شروع سخنرانی TED را بر حسب میلی ثانیه تنظیم کنید. پیش فرض 15000 (15 ثانیه) است. این است
برای همگامسازی زیرنویسها با ویدیوهای قابل دانلود استفاده میشود، زیرا شامل 15s میشوند
مقدمه
مثال: زیرنویسها را به قالبی تبدیل کنید که اکثر بازیکنان میفهمند:
ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt
MUXERS
Muxers عناصر پیکربندی شده ای در FFmpeg هستند که امکان نوشتن جریان های چند رسانه ای را در a
نوع خاصی از فایل
هنگامی که ساخت FFmpeg خود را پیکربندی می کنید، تمام muxer های پشتیبانی شده به طور پیش فرض فعال هستند. شما
می تواند با استفاده از گزینه پیکربندی "--list-muxers" همه muxers موجود را فهرست کند.
می توانید با گزینه پیکربندی "--disable-muxers" همه muxers را غیرفعال کنید و
با گزینه های "--enable-muxer=. به صورت انتخابی فعال/غیرفعال کردن تک muxer هاMUXER" /
"--disable-muxer=MUXER".
گزینه "-formats" ابزارهای ff* لیستی از muxer های فعال را نمایش می دهد.
شرح برخی از موکسرهای موجود در حال حاضر در ادامه آمده است.
مأموریت
تبادل صوتی فرمت فایل muxer.
گزینه
گزینه های زیر را می پذیرد:
write_id3v2
وقتی روی 3 تنظیم شده است، نوشتن برچسب های ID2v1 را فعال کنید. پیش فرض 0 است (غیرفعال).
نسخه id3v2
نسخه ID3v2 را برای نوشتن انتخاب کنید. در حال حاضر فقط نسخه 3 و 4 (معروف به ID3v2.3 و
ID3v2.4) پشتیبانی می شوند. پیش فرض نسخه 4 است.
CRC
فرمت تست CRC (Cyclic Redundancy Check).
این موکسر Adler-32 CRC همه فریم های صوتی و تصویری ورودی را محاسبه و چاپ می کند.
فریمهای صوتی بهطور پیشفرض به فریمهای صوتی و تصویری خام امضا شده ۱۶ بیتی به خام تبدیل میشوند
ویدیو قبل از محاسبه CRC
خروجی muxer از یک خط واحد تشکیل شده است: CRC=0xCRC، که در آن CRC هست یک
عدد هگزادسیمال 0 دارای 8 رقم حاوی CRC برای تمام ورودی های رمزگشایی شده
قاب ها
همچنین ببینید framecrc موکسر
مثال ها
برای مثال برای محاسبه CRC ورودی، و ذخیره آن در فایل out.crc:
ffmpeg -i INPUT -f crc out.crc
می توانید CRC را در stdout با دستور زیر چاپ کنید:
ffmpeg -i INPUT -f crc -
می توانید فرمت خروجی هر فریم را با آن انتخاب کنید ffmpeg با مشخص کردن صدا و
کدک و فرمت ویدیویی به عنوان مثال برای محاسبه CRC صدای ورودی تبدیل به PCM
8 بیت بدون علامت و ویدیوی ورودی به ویدیو MPEG-2 تبدیل شده است، از دستور استفاده کنید:
ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f crc -
framecrc
فرمت تست CRC (بررسی چرخه ای افزونگی) هر بسته.
این muxer Adler-32 CRC را برای هر بسته صوتی و تصویری محاسبه و چاپ می کند. توسط
فریمهای صوتی پیشفرض به فریمهای صوتی خام و تصویری امضا شده ۱۶ بیتی به خام تبدیل میشوند
ویدیو قبل از محاسبه CRC
خروجی muxer شامل یک خط برای هر بسته صوتی و تصویری فرم است:
، ، ، ، ، 0x
CRC یک عدد هگزادسیمال 0 است که دارای 8 رقم است که حاوی CRC بسته است.
مثال ها
به عنوان مثال برای محاسبه CRC فریم های صوتی و تصویری در INPUT، به خام تبدیل شده است
بسته های صوتی و تصویری و ذخیره آن در فایل out.crc:
ffmpeg -i INPUT -f framecrc out.crc
برای چاپ اطلاعات در stdout از دستور زیر استفاده کنید:
ffmpeg -i INPUT -f framecrc -
با ffmpeg، می توانید فرمت خروجی را انتخاب کنید که فریم های صوتی و تصویری به آن است
قبل از محاسبه CRC برای هر بسته با تعیین کدک صوتی و تصویری کدگذاری می شود.
به عنوان مثال، برای محاسبه CRC هر فریم صوتی ورودی رمزگشایی شده تبدیل به PCM
8 بیت بدون علامت و از هر فریم ویدیوی ورودی رمزگشایی شده که به ویدیوی MPEG-2 تبدیل شده است، از
فرمان:
ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f framecrc -
همچنین ببینید CRC موکسر
framemd5
فرمت تست MD5 در هر بسته.
این muxer هش MD5 را برای هر بسته صوتی و تصویری محاسبه و چاپ می کند. به صورت پیش فرض
قاب های صوتی قبلاً به فریم های صوتی و تصویری خام امضا شده 16 بیتی به ویدیوی خام تبدیل می شوند
محاسبه هش
خروجی muxer شامل یک خط برای هر بسته صوتی و تصویری فرم است:
، ، ، ، ،
MD5 یک عدد هگزادسیمال است که نشان دهنده هش MD5 محاسبه شده برای بسته است.
مثال ها
به عنوان مثال برای محاسبه MD5 فریم های صوتی و تصویری در INPUT، به خام تبدیل شده است
بسته های صوتی و تصویری و ذخیره آن در فایل out.md5:
ffmpeg -i INPUT -f framemd5 out.md5
برای چاپ اطلاعات در stdout از دستور زیر استفاده کنید:
ffmpeg -i INPUT -f framemd5 -
همچنین ببینید md5 موکسر
GIF
متحرک GIF muxer.
گزینه های زیر را می پذیرد:
حلقه
تعداد دفعات حلقه خروجی را تنظیم کنید. از "-1" برای بدون حلقه، 0 برای حلقه استفاده کنید
به طور نامحدود (پیش فرض).
نهایی_تاخیر
تاخیر (بیان شده در سانتیثانیه) را بعد از آخرین فریم مجبور کنید. هر فریم به پایان می رسد
یک تاخیر تا فریم بعدی پیش فرض "-1" است، که یک مقدار ویژه برای گفتن است
muxer برای استفاده مجدد از تاخیر قبلی. در صورت وجود حلقه، ممکن است بخواهید شخصی سازی کنید
این مقدار به عنوان مثال برای علامت گذاری یک مکث.
به عنوان مثال، برای رمزگذاری یک گیف که 10 بار حلقه می شود، با 5 ثانیه تاخیر بین حلقه ها:
ffmpeg -i INPUT -loop 10 -final_delay 500 out.gif
نکته 1: اگر می خواهید فریم ها را در فایل های GIF جداگانه استخراج کنید، باید آن را مجبور کنید
image2 موکسر:
ffmpeg -i INPUT -c:v gif -f image2 "out%d.gif"
نکته 2: فرمت GIF دارای پایه زمانی بسیار کمی است: تاخیر بین دو فریم نمی تواند باشد
کوچکتر از یک سانتیمتر
hls
موکسر پخش زنده HTTP Apple که MPEG-TS را طبق HTTP Live Streaming بخش بندی می کند.
مشخصات (HLS).
یک فایل لیست پخش و یک یا چند فایل بخش ایجاد می کند. نام فایل خروجی مشخص می کند
نام فایل لیست پخش
به طور پیش فرض، muxer برای هر بخش تولید شده یک فایل ایجاد می کند. این فایل ها هم همینطور هستند
نام را به عنوان لیست پخش، به دنبال آن یک عدد متوالی و یک پسوند ts.
به عنوان مثال، برای تبدیل یک فایل ورودی با ffmpeg:
ffmpeg -i in.nut out.m3u8
این مثال لیست پخش را تولید می کند، out.m3u8و فایل ها را قطعه بندی کنید: out0.ts, out1.ts,
out2.ts، و غیره
همچنین ببینید بخش muxer، که اجرای عمومی تر و انعطاف پذیرتر از a را فراهم می کند
قطعه ساز، و می تواند برای انجام بخش بندی HLS استفاده شود.
گزینه
این muxer گزینه های زیر را پشتیبانی می کند:
hls_time ثانیه
طول بخش را بر حسب ثانیه تنظیم کنید. مقدار پیش فرض 2 است.
hls_list_size اندازه
حداکثر تعداد ورودی های لیست پخش را تنظیم کنید. اگر روی 0 تنظیم شود، فایل لیست شامل همه خواهد بود
بخش ها مقدار پیش فرض 5 است.
hls_ts_options گزینه_list
گزینه های قالب خروجی را با استفاده از یک لیست جدا شده از پارامترهای key=value تنظیم کنید. ارزش های
حاوی کاراکترهای ویژه ":" باید حذف شوند.
hls_wrap بسته بندی کردن
عددی را تنظیم کنید که پس از آن شماره نام فایل بخش (عددی که در هر کدام مشخص شده است
فایل قطعه) پیچیده می شود. اگر روی 0 تنظیم شود، عدد هرگز بسته نمی شود. مقدار پیش فرض 0 است.
این گزینه برای جلوگیری از پر کردن دیسک با فایل های بخش و محدودیت های زیاد مفید است
حداکثر تعداد فایل های بخش نوشته شده روی دیسک بسته بندی کردن.
شروع_شماره عدد
شماره دنباله لیست پخش را از عدد. مقدار پیش فرض 0 است.
hls_allow_cache ذخیره ذخیره
به صراحت تنظیم کنید که آیا مشتری ممکن است \fIs0(1) یا نباید \fIs0(0) رسانه کش
بخش ها
hls_base_url بیسورل
ضمیمه کردن بیسورل به هر ورودی در لیست پخش. مفید برای تولید لیست پخش با
مسیرهای مطلق
توجه داشته باشید که شماره دنباله لیست پخش باید برای هر بخش منحصر به فرد باشد و اینطور نیست
با شماره دنباله نام فایل قطعه که می تواند چرخه ای باشد، اشتباه گرفته شود
به عنوان مثال اگر بسته بندی کردن گزینه مشخص شده است.
hls_segment_filename نام فایل
نام فایل بخش را تنظیم کنید. مگر اینکه hls_flags single_file تنظیم شده باشد نام فایل به عنوان یک مورد استفاده قرار می گیرد
قالب رشته با شماره بخش:
ffmpeg in.nut -hls_segment_filename 'file%03d.ts' out.m3u8
این مثال لیست پخش را تولید می کند، out.m3u8و فایل ها را قطعه بندی کنید: file000.ts,
file001.ts, file002.ts، و غیره
hls_key_info_file key_info_file
از اطلاعات موجود در key_info_file برای رمزگذاری بخش خط اول از
key_info_file URI کلید نوشته شده در لیست پخش را مشخص می کند. از URL کلید استفاده می شود
در حین پخش به کلید رمزگذاری دسترسی پیدا کنید. خط دوم مسیر را مشخص می کند
فایل کلیدی که برای بدست آوردن کلید در طی فرآیند رمزگذاری استفاده می شود. فایل کلید به صورت خوانده می شود
یک آرایه واحد از 16 اکتت در قالب باینری. خط سوم اختیاری مشخص می کند
بردار مقداردهی اولیه (IV) به عنوان یک رشته هگزادسیمال برای استفاده به جای
شماره دنباله قطعه (پیش فرض) برای رمزگذاری. تغییرات key_info_file نتیجه خواهد داد
در رمزگذاری بخش با کلید جدید/IV و یک ورودی در لیست پخش برای کلید جدید
URI/IV.
فرمت فایل اطلاعات کلیدی:
(اختیاری)
نمونه URI های کلیدی:
http://server/file.key
/path/to/file.key
فایل.کلید
نمونه مسیرهای فایل کلیدی:
فایل.کلید
/path/to/file.key
مثال IV:
0123456789ABCDEF0123456789ABCDEF
نمونه فایل اطلاعات کلیدی:
http://server/file.key
/path/to/file.key
0123456789ABCDEF0123456789ABCDEF
نمونه پوسته اسکریپت:
#!/ بن / شل
BASE_URL=${1:-'.'}
openssl rand 16 > file.key
echo $BASE_URL/file.key > file.keyinfo
echo file.key >> file.keyinfo
echo $(openssl rand -hex 16) >> file.keyinfo
ffmpeg -f lavfi -re -i testsrc -c:v h264 -hls_flags delete_segments \
-hls_key_info_file file.keyinfo out.m3u8
hls_flags تک_فایل
اگر این پرچم تنظیم شود، muxer تمام بخش ها را در یک فایل MPEG-TS ذخیره می کند و
از محدوده بایت در لیست پخش استفاده خواهد کرد. لیست های پخش HLS که با این روش تولید می شوند، خواهند داشت
نسخه شماره 4. به عنوان مثال:
ffmpeg -i in.nut -hls_flags single_file out.m3u8
لیست پخش را تولید خواهد کرد، out.m3u8و یک فایل تک بخش، out.ts.
hls_flags delete_segments
فایل های بخش حذف شده از لیست پخش پس از مدت زمانی برابر با حذف می شوند
مدت زمان بخش به اضافه مدت زمان لیست پخش.
ICO
ICO فایل muxer.
فرمت فایل آیکون مایکروسافت (ICO) دارای محدودیتهای جدی است که باید به آنها توجه کرد:
· اندازه نمی تواند از 256 پیکسل در هر بعد تجاوز کند
· فقط تصاویر BMP و PNG را می توان ذخیره کرد
· اگر از یک تصویر BMP استفاده می شود، باید یکی از فرمت های پیکسل زیر باشد:
فرمت پیکسل عمق بیت BMP FFmpeg
1 بیت pal8
4 بیت pal8
8 بیت pal8
16 بیت rgb555le
24 بیت bgr24
32 بیت bgra
· اگر تصویر BMP استفاده می شود، باید از هدر BITMAPINFOHEADER DIB استفاده کند
· اگر از یک تصویر PNG استفاده می شود، باید از فرمت پیکسل rgba استفاده کند
image2
فایل تصویری muxer.
فایل تصویری muxer فریم های ویدئویی را روی فایل های تصویر می نویسد.
نام فایل های خروجی با یک الگو مشخص می شوند که می توان از آن برای تولید متوالی استفاده کرد
سری فایل های شماره گذاری شده الگو ممکن است حاوی رشته "%d" یا "%0 باشدNd" این رشته
موقعیت کاراکترهایی که شماره گذاری را در نام فایل ها نشان می دهند را مشخص می کند. اگر
فرم "%0Nd" استفاده می شود، رشته ای که عدد را در هر نام فایل نشان می دهد 0-padd شده است N
ارقام کاراکتر تحت اللفظی '%' را می توان در الگو با رشته "%%" مشخص کرد.
اگر الگو حاوی "%d" یا "%0 باشدNd، اولین نام فایل لیست فایل مشخص شده خواهد بود
شامل عدد 1 باشد، تمام اعداد زیر به ترتیب خواهند بود.
این الگو ممکن است حاوی پسوندی باشد که برای تعیین خودکار قالب استفاده می شود
فایل های تصویری برای نوشتن
برای مثال الگوی "img-%03d.bmp" دنباله ای از نام فایل های فرم را مشخص می کند.
img-001.bmp, img-002.bmp، ... ، img-010.bmpو غیره. الگوی "img%%-%d.jpg" loading="lazy" مشخص خواهد شد
دنباله ای از نام فایل های فرم img%-1.jpg, img%-2.jpg، ... ، img%-10.jpg، و غیره
مثال ها
مثال زیر نحوه استفاده را نشان می دهد ffmpeg برای ایجاد دنباله ای از فایل ها
IMG-001.jpeg, IMG-002.jpeg، ...، گرفتن یک تصویر در هر ثانیه از ویدیوی ورودی:
ffmpeg -i in.avi -vsync 1 -r 1 -f image2 'img-%03d.jpeg'
توجه داشته باشید که با ffmpeg، اگر فرمت با گزینه "-f" و خروجی مشخص نشده باشد
filename فرمت فایل تصویری را مشخص می کند، image2 muxer به طور خودکار انتخاب می شود، بنابراین
دستور قبلی را می توان به صورت زیر نوشت:
ffmpeg -i in.avi -vsync 1 -r 1 'img-%03d.jpeg'
همچنین توجه داشته باشید که الگو لزوماً نباید حاوی «%d» یا «%0» باشدNd، به عنوان مثال به
یک فایل تصویری ایجاد کنید img.jpeg از ویدیوی ورودی می توانید از دستور زیر استفاده کنید:
ffmpeg -i in.avi -f image2 -frames:v 1 img.jpeg
La زمان صرف وقت گزینه به شما امکان می دهد نام فایل را با اطلاعات تاریخ و زمان گسترش دهید.
مستندات تابع "strftime()" را برای نحو بررسی کنید.
برای مثال برای تولید فایل های تصویری از الگوی "strftime()"%Y-%m-%d_%H-%M-%S"،
پیروی ffmpeg دستور را می توان استفاده کرد:
ffmpeg -f v4l2 -r 1 -i /dev/video0 -f image2 -strftime 1 "%Y-%m-%d_%H-%M-%S.jpg"
گزینه
شروع_شماره
دنباله را از عدد مشخص شده شروع کنید. مقدار پیش فرض 0 است.
به روز رسانی
اگر روی 1 تنظیم شود، نام فایل همیشه فقط به عنوان یک نام فایل تفسیر می شود، نه a
الگو، و فایل مربوطه به طور مداوم با تصاویر جدید بازنویسی می شود.
مقدار پیش فرض 0 است.
زمان صرف وقت
اگر روی 1 تنظیم شده است، نام فایل را با اطلاعات تاریخ و زمان از "strftime()" گسترش دهید.
مقدار پیش فرض 0 است.
تصویر muxer از فرمت فایل تصویر .YUV پشتیبانی می کند. این قالب از این جهت خاص است
هر فریم تصویر از سه فایل برای هر یک از اجزای YUV420P تشکیل شده است. برای خواندن یا
این فرمت فایل تصویری را بنویسید، نام فایل '.Y' را مشخص کنید. موکسر اراده خواهد کرد
به صورت خودکار فایل های '.U' و '.V' را در صورت نیاز باز کنید.
matroska
مخزن ظرف ماتروسکا.
این muxer مشخصات کانتینر matroska و webm را پیاده سازی می کند.
متاداده
تنظیمات فراداده شناخته شده در این muxer عبارتند از:
عنوان
نام عنوان ارائه شده برای یک آهنگ را تنظیم کنید.
زبان
زبان آهنگ را در فرم زبان های Matroska مشخص کنید.
این زبان میتواند از فرم 3 حرفی ISO-639-2 (ISO 639-2/B) باشد.
(مانند "fre" برای فرانسوی)، یا یک کد زبان مخلوط با یک کد کشور برای تخصص ها
در زبان ها (مانند "fre-ca" برای فرانسوی کانادایی).
حالت_استریو
طرحبندی ویدیوی سه بعدی استریو را با دو نما در یک آهنگ ویدیویی تنظیم کنید.
مقادیر زیر شناسایی می شوند:
تک
ویدیو استریو نیست
چپ راست
هر دو نما در کنار هم چیده شده اند، نمای چپ در سمت چپ است
پایین بالا
هر دو نما در جهت بالا به پایین مرتب شده اند، نمای چپ در پایین است
top_bottom
هر دو نما در جهت بالا به پایین مرتب شده اند، نمای چپ در بالا قرار دارد
checkerboard_rl
هر نما در یک الگوی شطرنجی در هم قرار گرفته است که نمای چشم چپ است
اول
checkerboard_lr
هر نما در یک الگوی شطرنجی در هم قرار گرفته است که نمای چشم راست است
اول
row_interleaved_rl
هر نما توسط یک ردیف بر اساس ردیف تشکیل شده است، نمای چشم راست ردیف اول است
row_interleaved_lr
هر نما با یک ردیف بر اساس یک ردیف تشکیل شده است، نمای چپ، ردیف اول است
col_interleaved_rl
هر دو نما به صورت ستونی در هم قرار گرفته اند، نمای چشم راست
ستون اول
col_interleaved_lr
هر دو نما به صورت ستونی در هم قرار گرفته اند، نمای چپ چشم است
ستون اول
anaglyph_cyan_red
همه فریم ها در قالب آناگلیف قابل مشاهده از طریق فیلترهای قرمز فیروزه ای هستند
راست چپ
هر دو نما در کنار هم چیده شده اند، نمای چشم راست در سمت چپ است
anaglyph_green_magenta
همه فریم ها در قالب آناگلیف قابل مشاهده از طریق فیلترهای سبز- سرخابی هستند
block_lr
هر دو چشم در یک بلوک بسته شده اند، نمای چپ اول است
block_rl
هر دو چشم در یک بلوک بسته شده اند، نمای چشم راست اول است
به عنوان مثال یک کلیپ WebM سه بعدی را می توان با استفاده از خط فرمان زیر ایجاد کرد:
ffmpeg -i sample_left_right_clip.mpg -an -c:v libvpx -metadata stereo_mode=left_right -y stereo_clip.webm
گزینه
این muxer گزینه های زیر را پشتیبانی می کند:
rezerv_index_space
به طور پیشفرض، این muxer فهرست جستجو (که در اصطلاح ماتروسکا نشانهها نامیده میشود) را در مینویسد
انتهای فایل، زیرا نمی تواند از قبل بداند چه مقدار فضا برای آن باقی می ماند
ایندکس در ابتدای فایل اما برای برخی موارد استفاده -- به عنوان مثال استریم
در جایی که جستجو ممکن است اما کند است -- قرار دادن شاخص در ابتدا مفید است
از فایل
اگر این گزینه روی یک مقدار غیر صفر تنظیم شود، muxer مقدار مشخصی را رزرو می کند
در هدر فایل خالی کنید و سپس سعی کنید نشانه ها را در هنگام muxing در آنجا بنویسید
به پایان می رسد. اگر فضای موجود کافی نباشد، muxing با شکست مواجه خواهد شد. اندازه ای مطمئن برای
بیشتر موارد استفاده باید حدود 50 کیلوبایت در ساعت ویدیو باشد.
توجه داشته باشید که نشانهها فقط در صورتی نوشته میشوند که خروجی قابل جستجو باشد و این گزینه هیچ ندارد
اثر اگر نباشد
md5
فرمت تست MD5.
این muxer هش MD5 تمام فریم های صوتی و تصویری ورودی را محاسبه و چاپ می کند. توسط
فریمهای صوتی پیشفرض به فریمهای صوتی خام و تصویری امضا شده ۱۶ بیتی به خام تبدیل میشوند
ویدیو قبل از محاسبه هش
خروجی muxer از یک خط به شکل MD5 = تشکیل شده استMD5، که در آن MD5 هست یک
عدد هگزادسیمال نشان دهنده هش MD5 محاسبه شده است.
به عنوان مثال برای محاسبه هش MD5 ورودی تبدیل به صدا و تصویر خام و
آن را در فایل ذخیره کنید out.md5:
ffmpeg -i INPUT -f md5 out.md5
می توانید MD5 را در stdout با دستور زیر چاپ کنید:
ffmpeg -i INPUT -f md5 -
همچنین ببینید framemd5 موکسر
حرکت، mp4 ، ismv
موکسر MOV/MP4/ISMV (Smooth Streaming).
mov/mp4/ismv muxer از تکه تکه شدن پشتیبانی می کند. به طور معمول، یک فایل MOV/MP4 همه موارد را دارد
ابرداده در مورد تمام بسته های ذخیره شده در یک مکان (که در انتهای فایل نوشته شده است، می تواند
برای پخش بهتر با اضافه کردن به شروع منتقل شود شروع سریع به پرچم های حرکتی، یا با استفاده از
la qt-faststart ابزار). یک فایل تکه تکه شده از تعدادی قطعه تشکیل شده است که در آن بسته ها وجود دارد
و ابرداده در مورد این بسته ها با هم ذخیره می شوند. نوشتن یک فایل تکه تکه دارای
مزیت این است که فایل حتی در صورت قطع نوشتن (در حالی که عادی است) قابل رمزگشایی است
MOV/MP4 در صورتی که به درستی تکمیل نشود غیرقابل رمزگشایی است و زمانی که به حافظه کمتری نیاز دارد
نوشتن فایل های بسیار طولانی (از آنجایی که نوشتن فایل های معمولی MOV/MP4 اطلاعات مربوط به هر یک را ذخیره می کند
بسته در حافظه تا بسته شدن فایل). نکته منفی این است که سازگاری کمتری دارد
با برنامه های دیگر
گزینه
تکه تکه شدن با تنظیم یکی از AVOptions که نحوه برش فایل را تعریف می کند، فعال می شود
به قطعات:
-moov_size بایت
به جای قرار دادن اتم moov در ابتدای فایل، فضا را رزرو می کند
moov atom در پایان. اگر فضای رزرو شده کافی نباشد، موکسینگ با شکست مواجه خواهد شد.
پرچم های حرکتی frag_keyframe
در هر فریم کلیدی ویدیو یک قطعه جدید شروع کنید.
-frag_duration مدت
قطعاتی ایجاد کنید که هستند مدت میکروثانیه طولانی
-frag_size اندازه
قطعاتی ایجاد کنید که حاوی تا اندازه بایت داده محموله
پرچم های حرکتی frag_custom
به تماسگیرنده اجازه دهید با تماس، انتخاب کند که چه زمانی قطعات را برش دهد
"av_write_frame(ctx, NULL)" برای نوشتن یک قطعه با بسته های نوشته شده تا کنون. (این
فقط با سایر برنامه های کاربردی که libavformat را یکپارچه می کنند مفید است، نه از ffmpeg.)
-min_frag_duration مدت
قطعاتی که کوتاهتر از آن هستند ایجاد نکنید مدت میکروثانیه طولانی
اگر بیش از یک شرط مشخص شده باشد، قطعات با یکی از شرایط مشخص شده بریده می شوند
شرایط برآورده شده است. استثناء این "-min_frag_duration" است که باید باشد
برای اعمال هر یک از شرایط دیگر برآورده شده است.
علاوه بر این، نحوه نوشتن فایل خروجی را می توان از طریق چند فایل دیگر تنظیم کرد
گزینه ها:
پرچم های حرکتی vala_moov
یک اتم moov اولیه را مستقیماً در ابتدای فایل، بدون توضیح هیچ، بنویسید
نمونه ها در آن معمولاً یک جفت mdat/moov در ابتدای فایل به صورت یک نوشته میشود
فایل معمولی MOV/MP4، که تنها حاوی بخش کوتاهی از فایل است. با این گزینه
مجموعه، هیچ اتم اولیه mdat وجود ندارد، و اتم moov فقط آهنگ ها را توصیف می کند
مدت زمان صفر دارد
این گزینه به طور ضمنی هنگام نوشتن فایل های ismv (Smooth Streaming) تنظیم می شود.
پرچم های حرکتی جداگانه_موف
برای هر آهنگ یک اتم موف (قطعه فیلم) جداگانه بنویسید. به طور معمول، بسته ها برای همه
آهنگ ها در یک اتم موف (که کمی کارآمدتر است) نوشته می شوند، اما با این
در مجموعه گزینهها، muxer یک جفت moof/mdat برای هر آهنگ مینویسد و این کار را آسانتر میکند
آهنگ های جداگانه
این گزینه به طور ضمنی هنگام نوشتن فایل های ismv (Smooth Streaming) تنظیم می شود.
پرچم های حرکتی شروع سریع
یک پاس دوم را اجرا کنید و شاخص (moov atom) را به ابتدای فایل منتقل کنید. این
عملیات ممکن است کمی طول بکشد و در موقعیت های مختلف مانند تکه تکه شدن کار نخواهد کرد
خروجی، بنابراین به طور پیش فرض فعال نیست.
پرچم های حرکتی rtphint
آهنگ های اشاره RTP را به فایل خروجی اضافه کنید.
پرچم های حرکتی disable_chpl
نشانگرهای فصل Nero (chpl atom) را غیرفعال کنید. به طور معمول، هر دو فصل Nero و a
آهنگ فصل QuickTime در فایل نوشته می شود. با مجموعه این گزینه، فقط
آهنگ فصل QuickTime نوشته خواهد شد. فصلهای Nero میتوانند باعث خرابی در زمانی شوند که
فایل با برنامه های برچسب گذاری خاصی مانند mp3Tag 2.61a و iTunes 11.3 دوباره پردازش می شود،
به احتمال زیاد نسخه های دیگر نیز تحت تأثیر قرار می گیرند.
پرچم های حرکتی omit_tfhd_offset
هیچ base_data_offset مطلقی را در اتم های tfhd ننویسید. این کار از گره خوردن قطعات جلوگیری می کند
به موقعیت های بایت مطلق در فایل/جریان ها.
پرچم های حرکتی default_base_moof
مشابه omit_tfhd_offset، این پرچم از نوشتن مطلق اجتناب می کند
فیلد base_data_offset در اتم های tfhd، اما این کار را با استفاده از پیش فرض جدید-base-is- انجام می دهد.
در عوض پرچم موف این پرچم از 14496-12:2012 جدید است. این ممکن است قطعات را ایجاد کند
تجزیه آسان تر در شرایط خاص (جلوگیری از پایگاه دادن محل قطعه آهنگ
محاسبات در انتهای ضمنی قطعه آهنگ قبلی).
مثال
با این کار می توان محتوای Smooth Streaming را در زمان واقعی به نقطه انتشار در IIS هدایت کرد
موکسر مثال:
ffmpeg -re < > -movflags isml+frag_keyframe -f isv http://server/publishingpoint.isml/Streams(Encoder1)
قابل شنیدن AAX
فایلهای AAX قابل شنیدن فایلهای M4B رمزگذاریشده هستند و میتوان آنها را با تعیین 4 رمزگشایی کرد.
رمز فعال سازی بایت
ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c:a copy output.mp4
mp3
MP3 muxer یک جریان MP3 خام با ویژگی های اختیاری زیر می نویسد:
هدر فراداده ID3v2 در ابتدا (به طور پیش فرض فعال است). نسخه های 2.3 و 2.4
پشتیبانی می شوند، گزینه خصوصی "id3v2_version" کنترل می کند که کدام یک استفاده می شود (3 یا 4).
تنظیم "id3v2_version" روی 0 هدر ID3v2 را به طور کامل غیرفعال می کند.
muxer از نوشتن تصاویر پیوست شده (فریم های APIC) در هدر ID3v2 پشتیبانی می کند. در
تصاویر به صورت یک جریان ویدیویی با یک بسته به muxer ارائه می شود.
میتواند هر تعداد از آن جریانها وجود داشته باشد، هر کدام با یک فریم APIC منفرد مطابقت دارند.
تگ های فراداده جریان عنوان و توضیح نقشه به APIC شرح و تصویر نوع
به ترتیب. دیدنhttp://id3.org/id3v2.4.0-frames> برای انواع تصاویر مجاز.
توجه داشته باشید که فریم های APIC باید در ابتدا نوشته شوند، بنابراین muxer بافر خواهد شد
فریم های صوتی را تا زمانی که تمام تصاویر را دریافت کند. بنابراین توصیه می شود ارائه شود
تصاویر را در اسرع وقت برای جلوگیری از بافر بیش از حد.
یک قاب Xing/LAME درست بعد از هدر ID3v2 (در صورت وجود). به طور پیش فرض فعال است،
اما فقط در صورتی نوشته می شود که خروجی قابل جستجو باشد. گزینه خصوصی "write_xing".
می توان برای غیرفعال کردن آن استفاده کرد. قاب حاوی اطلاعات مختلفی است که ممکن است مفید باشد
به رمزگشا، مانند مدت زمان صدا یا تأخیر رمزگذار.
· یک تگ قدیمی ID3v1 در انتهای فایل (به طور پیش فرض غیرفعال است). ممکن است فعال باشد
با گزینه خصوصی "write_id3v1"، اما از آنجایی که قابلیت های آن بسیار محدود است،
استفاده توصیه نمی شود
مثال:
یک mp3 با هدر ID3v2.3 و پاورقی ID3v1 بنویسید:
ffmpeg -i INPUT -id3v2_version 3 -write_id3v1 1 out.mp3
برای پیوست کردن یک عکس به یک فایل mp3، هم صدا و هم جریان تصویر را با آن انتخاب کنید
"نقشه":
ffmpeg -i input.mp3 -i cover.png -c copy -map 0 -map 1
-metadata:s:v title="جلد آلبوم" -metadata:s:v comment="Cover (جلو)" out.mp3
یک MP3 "تمیز" بدون هیچ ویژگی اضافی بنویسید:
ffmpeg -i input.wav -write_xing 0 -id3v2_version 0 out.mp3
mpegts
موکسر جریان حمل و نقل MPEG.
این muxer ISO 13818-1 و بخشی از ETSI EN 300 468 را پیاده سازی می کند.
تنظیمات فراداده شناسایی شده در mpegts muxer عبارتند از "service_provider" و
"نام_سرویس". اگر آنها تنظیم نشده باشند، پیش فرض برای "service_provider" "FFmpeg" است و
پیش فرض برای "service_name" "Service01" است.
گزینه
گزینه های muxer عبارتند از:
-mpegts_original_network_id عدد
original_network_id (پیشفرض 0x0001) را تنظیم کنید. این شناسه منحصر به فرد یک شبکه است
در DVB کاربرد اصلی آن در شناسایی منحصر به فرد یک سرویس از طریق مسیر است
شناسه_شبکه_اصلی، شناسه_جریان_ترابری.
-mpegts_transport_stream_id عدد
transport_stream_id (پیشفرض 0x0001) را تنظیم کنید. این یک فرستنده در DVB را شناسایی می کند.
-mpegts_service_id عدد
service_id (پیشفرض 0x0001) را که به عنوان برنامه در DVB نیز شناخته میشود، تنظیم کنید.
-mpegts_service_type عدد
برنامه service_type را تنظیم کنید (پیشفرض دیجیتال_تلویزیون، در زیر لیستی از از پیش تعریف شده را ببینید
ارزش ها.
-mpegts_pmt_start_pid عدد
اولین PID را برای PMT تنظیم کنید (پیشفرض 0x1000، حداکثر 0x1f00).
-mpegts_start_pid عدد
اولین PID را برای بسته های داده تنظیم کنید (پیش فرض 0x0100، حداکثر 0x0f00).
-mpegts_m2ts_mode عدد
اگر روی 2 تنظیم شده باشد حالت m1ts را فعال کنید. مقدار پیش فرض -1 است که حالت m2ts را غیرفعال می کند.
-Muxrate عدد
یک Muxrate ثابت (پیشفرض VBR) تنظیم کنید.
-pcr_period شماره
زمان پیشفرض ارسال مجدد PCR (پیشفرض 20 میلیثانیه) را نادیده بگیرید، اگر متغیر باشد، نادیده گرفته میشود
muxrate انتخاب شده است.
pat_period عدد
حداکثر زمان بین جداول PAT/PMT بر حسب ثانیه.
sdt_period عدد
حداکثر زمان بین جداول SDT بر حسب ثانیه.
-pes_payload_size عدد
حداقل بار بسته PES را بر حسب بایت تنظیم کنید.
-mpegts_flags پرچم ها
پرچم ها را تنظیم کنید (به زیر مراجعه کنید).
-mpegts_copyts عدد
اگر مقدار روی 1 تنظیم شده باشد، مهرهای زمانی اصلی را حفظ کنید. مقدار پیشفرض -1 است که نتیجه میشود
در جابجایی مهرهای زمانی به گونه ای که از 0 شروع شوند.
-tables_version عدد
نسخه PAT، PMT و SDT را تنظیم کنید (پیشفرض 0، مقادیر معتبر از 0 تا 31 هستند).
این گزینه امکان به روز رسانی ساختار جریان را می دهد تا مصرف کننده استاندارد بتواند آن را تشخیص دهد
تغییر دادن. برای انجام این کار، خروجی AVFormatContext (در صورت استفاده از API) را دوباره باز کنید یا راه اندازی مجدد کنید.
نمونه ffmpeg، تغییر دوره ای مقدار tables_version:
ffmpeg -i source1.ts -کپی کدک -f mpegts -tables_version 0 udp://1.1.1.1:1111
ffmpeg -i source2.ts -کپی کدک -f mpegts -tables_version 1 udp://1.1.1.1:1111
...
ffmpeg -i source3.ts -کپی کدک -f mpegts -tables_version 31 udp://1.1.1.1:1111
ffmpeg -i source1.ts -کپی کدک -f mpegts -tables_version 0 udp://1.1.1.1:1111
ffmpeg -i source2.ts -کپی کدک -f mpegts -tables_version 1 udp://1.1.1.1:1111
...
گزینه mpegts_service_type مقادیر زیر را می پذیرد:
hex_value
هر مقدار هگز دسیمال بین 0x01 تا 0xff همانطور که در ETSI 300 468 تعریف شده است.
دیجیتال_تلویزیون
سرویس تلویزیون دیجیتال.
رادیو دیجیتالی
سرویس رادیو دیجیتال
تله تکست
سرویس تله تکست
advanced_codec_digital_radio
سرویس رادیوی دیجیتال کدک پیشرفته.
mpeg2_digital_hdtv
سرویس HDTV دیجیتال MPEG2.
advanced_codec_digital_sdtv
سرویس کدک دیجیتال SDTV پیشرفته.
advanced_codec_digital_hdtv
سرویس کدک دیجیتال HDTV پیشرفته.
گزینه mpegts_flags ممکن است مجموعه ای از این پرچم ها را بگیرد:
resend_headers
قبل از نوشتن بسته بعدی، PAT/PMT را دوباره ارسال کنید.
latm
از بسته بندی LATM برای AAC استفاده کنید.
pat_pmt_at_frames
PAT و PMT را در هر فریم ویدیو دوباره ارسال کنید.
مثال
ffmpeg -i file.mpg -c کپی \
-mpegts_original_network_id 0x1122 \
-mpegts_transport_stream_id 0x3344 \
-mpegts_service_id 0x5566 \
-mpegts_pmt_start_pid 0x1500 \
-mpegts_start_pid 0x150 \
-metadata service_provider="برخی ارائه دهنده" \
-metadata service_name="Some Channel" \
-y out.ts
mxf، mxf_d10
موکسر MXF.
گزینه
گزینه های muxer عبارتند از:
store_user_comments بول
تنظیم کنید که نظرات کاربر در صورت موجود بودن یا هرگز ذخیره شوند. IRT D-10 اجازه نمی دهد
نظرات کاربران بنابراین پیش فرض این است که آنها را برای mxf بنویسیم اما برای mxf_d10 نه
تهی
موکسر پوچ.
این muxer هیچ فایل خروجی تولید نمی کند، عمدتا برای آزمایش یا مفید است
اهداف معیار
به عنوان مثال برای رمزگشایی معیار با ffmpeg می توانید از دستور استفاده کنید:
ffmpeg -benchmark -i INPUT -f null out.null
توجه داشته باشید که دستور بالا را نمی خواند یا نمی نویسد out.null فایل، اما مشخص کردن
فایل خروجی مورد نیاز است ffmpeg نحو.
یا می توانید دستور را به صورت زیر بنویسید:
ffmpeg -benchmark -i INPUT -f null -
مهره
-همگام ها پرچم ها
تغییر استفاده از همگام در مهره:
به طور پیش فرض استفاده کنید la طبیعی سربار کم به دنبال ایدز.
هیچ do نه استفاده کنید la همگام ها at همه، کاهش la در بالای سر اما ساخت la جریان
غیر قابل جستجو
استفاده از این گزینه توصیه نمی شود، زیرا فایل های به دست آمده بسیار آسیب دیده اند
حساس و جستجو امکان پذیر نیست. همچنین به طور کلی سربار از
syncpoints ناچیز است. توجه داشته باشید، -C 0 می تواند برای غیرفعال کردن استفاده شود
همه جداول داده در حال رشد، اجازه می دهد تا جریان های بی پایان را با حافظه محدود مخلوط کنید
و بدون این معایب
به موقع گسترش la همگام سازی با a ساعت دیواری رشته.
La هیچ و به موقع پرچم ها آزمایشی هستند
-بایت_هکس بول
در پایان فهرست را بنویسید، پیش فرض این است که یک فهرست بنویسید.
ffmpeg -i INPUT -f_strict تجربی -syncpoints none - | پردازنده
OGG
مخزن ظرف تخم مرغ.
-page_duration مدت
مدت زمان ترجیحی صفحه، بر حسب میکروثانیه. muxer سعی خواهد کرد صفحاتی را ایجاد کند که
تقریباً هستند مدت میکروثانیه طولانی این به کاربر اجازه می دهد تا مصالحه کند
بین دانه بندی جستجو و سربار ظرف. پیش فرض 1 ثانیه است. مقدار 0
تمام بخش ها را پر می کند و صفحات را تا حد امکان بزرگ می کند. مقدار 1 will
به طور موثر از 1 بسته در هر صفحه در بیشتر موقعیت ها استفاده کنید، که به جستجوی جزئی جزئی می دهد
به قیمت سربار کانتینر اضافی.
-serial_offset ارزش
مقدار سریالی که از آن شماره سریال استریم ها تنظیم می شود. تنظیم آن بر روی متفاوت و
مقادیر به اندازه کافی بزرگ تضمین می کند که فایل های ogg تولید شده می توانند به طور ایمن زنجیر شوند.
بخش، stream_segment، بخش
قطعهساز جریان اصلی.
این muxer استریم ها را به تعدادی فایل جداگانه با مدت زمان تقریباً ثابت خروجی می دهد. خروجی
الگوی نام فایل را می توان به روشی مشابه تنظیم کرد image2، یا با استفاده از "strftime"
الگو اگر زمان صرف وقت گزینه فعال است.
"stream_segment" گونهای از muxer است که برای نوشتن در قالبهای خروجی جریان استفاده میشود.
که نیازی به هدر سراسری ندارند و برای خروجی به عنوان مثال به MPEG توصیه می شوند
بخش های جریان حمل و نقل "ssegment" نام مستعار کوتاهتری برای "stream_segment" است.
هر بخش با یک فریم کلیدی از جریان مرجع انتخاب شده شروع می شود که تنظیم شده است
از طریق مرجع_جریان گزینه.
توجه داشته باشید که اگر می خواهید برای یک فایل ویدئویی تقسیم بندی دقیق داشته باشید، باید کلید ورودی را ایجاد کنید
فریم ها با زمان های تقسیم دقیق مورد انتظار قطعه ساز یا قطعه مطابقت دارند
muxer بخش جدید را با فریم کلیدی که بعد از شروع مشخص شده پیدا می شود شروع می کند
زمان.
Segment muxer با یک ویدیو با نرخ فریم ثابت به بهترین شکل کار می کند.
به صورت اختیاری میتواند با تنظیم گزینه، فهرستی از بخشهای ایجاد شده را ایجاد کند
segment_list. نوع لیست توسط segment_list_type گزینه. ورودی
نام فایل ها در لیست بخش به طور پیش فرض روی نام پایه مربوطه تنظیم می شود
فایل های بخش
همچنین ببینید hls muxer که پیاده سازی خاص تری را برای HLS فراهم می کند
تقسیم بندی
گزینه
Segment muxer گزینه های زیر را پشتیبانی می کند:
مرجع_جریان مشخصات
جریان مرجع را همانطور که توسط رشته مشخص شده است تنظیم کنید مشخصات. اگر مشخصات قرار است
به "خودکار"، مرجع به طور خودکار انتخاب می شود. در غیر این صورت باید یک جریان باشد
مشخص کننده (به فصل "مشخص کننده های جریان" در کتابچه راهنمای ffmpeg مراجعه کنید) که مشخص می کند
جریان مرجع مقدار پیش فرض "auto" است.
بخش_فرمت قالب
فرمت ظرف داخلی را لغو کنید، به طور پیش فرض با نام فایل حدس زده می شود
افزونه.
بخش_فرمت_گزینه ها گزینه_list
گزینه های قالب خروجی را با استفاده از یک لیست جدا شده از پارامترهای key=value تنظیم کنید. ارزش های
حاوی کاراکتر ویژه ":" باید فرار شود.
segment_list نام
همچنین یک لیست فایل با نام ایجاد کنید نام. اگر مشخص نشده باشد، لیست فایلی ایجاد نمی شود.
segment_list_flags پرچم ها
پرچم هایی را تنظیم کنید که بر تولید لیست بخش تأثیر می گذارد.
در حال حاضر از پرچم های زیر پشتیبانی می کند:
نهانگاه
مجاز به ذخیره سازی (فقط بر فایل های لیست M3U8 تأثیر می گذارد).
زنده
اجازه تولید فایلهای پسندیده را بدهید.
segment_list_size اندازه
فایل لیست را طوری به روز کنید که حداکثر حاوی آن باشد اندازه بخش ها اگر فایل لیست 0 باشد
شامل تمام بخش ها خواهد بود. مقدار پیش فرض 0 است.
segment_list_entry_prefix پیشوند
آماده کردن پیشوند به هر ورودی برای ایجاد مسیرهای مطلق مفید است. به طور پیش فرض بدون پیشوند
اعمال می شود.
segment_list_type نوع
قالب فهرست را انتخاب کنید.
مقادیر زیر شناسایی می شوند:
صاف
یک لیست مسطح برای بخش های ایجاد شده، یک بخش در هر خط ایجاد کنید.
csv، EXT
یک لیست برای بخش های ایجاد شده، یک بخش در هر خط، هر خط مطابقت ایجاد کنید
قالب (مقادیر جدا شده با کاما):
، ،
segment_filename نام فایل خروجی تولید شده توسط muxer است
به الگوی ارائه شده CSV escapeing (طبق RFC4180) اگر اعمال شود
مورد نیاز است.
segment_start_time و segment_end_time زمان شروع و پایان بخش را مشخص کنید
در ثانیه بیان می شود.
یک فایل لیست با پسوند ".csv" یا "ext." این قالب را به طور خودکار انتخاب می کند.
EXT به نفع یا منسوخ شده است CSV.
ffconcat
یک فایل ffconcat برای بخش های ایجاد شده ایجاد کنید. فایل حاصل را می توان خواند
با استفاده از FFmpeg concat دمکسر
یک فایل لیست با پسوند ".ffcat" یا ".ffconcat" به طور خودکار این قالب را انتخاب می کند.
m3u8
یک فایل توسعه یافته M3U8، نسخه 3، سازگار با
<http://tools.ietf.org/id/draft-pantos-http-live-streaming>.
یک فایل لیست با پسوند ".m3u8" به طور خودکار این قالب را انتخاب می کند.
اگر مشخص نشده باشد نوع از پسوند نام فایل لیست حدس زده می شود.
بخش_زمان زمان
مدت زمان بخش را روی زمان، مقدار باید مشخصات مدت زمان باشد. پیش فرض
مقدار "2" است. را نیز ببینید segment_times گزینه.
توجه داشته باشید که تقسیم ممکن است دقیق نباشد، مگر اینکه کلید جریان مرجع را مجبور کنید-
فریم ها در زمان معین اطلاعیه مقدماتی و نمونه های زیر را ببینید.
segment_atclocktime 1 | 0
اگر روی "1" تنظیم شود، در فواصل زمانی منظم از ساعت 00:00 شروع می شود. در
زمان مقدار مشخص شده در بخش_زمان برای تنظیم طول شکاف استفاده می شود
فاصله
به عنوان مثال با بخش_زمان روی "900" تنظیم کنید که این امکان ایجاد فایل ها را فراهم می کند
ساعت 12:00، 12:15، 12:30 و غیره
مقدار پیش فرض "0" است.
segment_time_delta دلتا
هنگام انتخاب زمان شروع برای یک بخش، زمان دقت را مشخص کنید
مشخصات مدت مقدار پیش فرض "0" است.
هنگامی که delta مشخص می شود، یک فریم کلیدی یک بخش جدید را شروع می کند اگر PTS آن مطابق با آن باشد
رابطه:
PTS >= start_time - time_delta
این گزینه هنگام تقسیم محتوای ویدیویی که همیشه در GOP تقسیم می شود مفید است
مرزها، در صورتی که یک فریم کلید درست قبل از زمان تقسیم مشخص شده پیدا شود.
به طور خاص ممکن است در ترکیب با ffmpeg انتخاب فورس_کلید_فریم.
زمان های فریم کلیدی مشخص شده توسط فورس_کلید_فریم ممکن است به دلیل تنظیم دقیق نباشد
مشکلات گرد کردن، با نتیجه اینکه ممکن است یک زمان فریم کلیدی درست قبل از آن تنظیم شود
زمان مشخص شده برای ویدیوهای با نرخ فریم ثابت مقدار 1/(2*نرخ_فریم) باید
رسیدگی به بدترین عدم تطابق بین زمان مشخص شده و زمان تعیین شده توسط
فورس_کلید_فریم.
segment_times بار
لیستی از نقاط تقسیم را مشخص کنید. بار شامل لیستی از مدت زمان جدا شده با کاما است
مشخصات، به ترتیب افزایش. را نیز ببینید بخش_زمان گزینه.
بخش_فریم ها قاب
فهرستی از اعداد فریم ویدیویی تقسیم شده را مشخص کنید. قاب شامل لیستی از کاما جدا شده است
اعداد صحیح به ترتیب افزایش
این گزینه مشخص می کند که هر زمان که یک قاب کلید جریان مرجع وجود دارد، یک بخش جدید شروع شود
پیدا شد و عدد ترتیبی (شروع از 0) فریم بزرگتر یا مساوی است
مقدار بعدی در لیست
بخش_وراپ محدود کردن
پس از رسیدن به شاخص قطعه، دور آن بپیچید محدود کردن.
بخش_شروع_شماره عدد
شماره دنباله اولین بخش را تنظیم کنید. پیشفرض 0 است.
زمان صرف وقت 1 | 0
از تابع "strftime" برای تعریف نام بخش های جدید برای نوشتن استفاده کنید. اگر این
انتخاب شده است، نام بخش خروجی باید شامل یک الگوی تابع "strftime" باشد.
مقدار پیش فرض 0 است.
break_non_keyframes 1 | 0
اگر فعال است، اجازه دهید بخشها روی فریمهایی غیر از فریمهای کلیدی شروع شوند. این بهبود می یابد
رفتار برخی از بازیکنان در زمانی که زمان بین فریم های کلیدی متناقض است، اما ممکن است باعث شود
اوضاع برای دیگران بدتر است، و می تواند باعث ایجاد برخی موارد عجیب و غریب در طول جستجو شود. پیشفرض 0 است.
reset_timestamps 1 | 0
مهرهای زمانی را در ابتدای هر بخش بازنشانی کنید، به طوری که هر بخش با آن شروع شود
مهر زمانی نزدیک به صفر این به معنای تسهیل پخش بخش های تولید شده است. ممکن است
با برخی از ترکیبات muxer/codec کار نمی کند. به طور پیش فرض روی 0 تنظیم شده است.
ابتدایی_افست چاپ افست
افست مهر زمانی را برای اعمال به مهرهای زمانی بسته خروجی مشخص کنید. استدلال باید
یک مشخصه مدت زمان باشد و به طور پیش فرض 0 باشد.
مثال ها
· Remux محتوای فایل in.mkv به لیستی از بخش ها out-000. مهره, out-001. مهره، و غیره،
و لیستی از بخش های تولید شده را بنویسید out.list:
ffmpeg -i in.mkv -کپی کدک -نقشه 0 -f بخش -segment_list out.list out%03d.nut
· گزینه های ورودی بخش و قالب خروجی را برای بخش های خروجی تنظیم کنید:
ffmpeg -i in.mkv -f بخش -segment_time 10 -segment_format_options movflags=+faststart out%03d.mp4
· بخش بندی فایل ورودی با توجه به نقاط تقسیم مشخص شده توسط segment_times
گزینه:
ffmpeg -i in.mkv -کپی کدک -نقشه 0 -f بخش -segment_list out.csv -segment_times 1,2,3,5,8,13,21 out%03d.nut
· استفاده کنید ffmpeg فورس_کلید_فریم گزینه ای برای اجبار فریم های کلیدی در ورودی در
مکان مشخص شده، همراه با گزینه بخش segment_time_delta برای حساب کردن
گردهای احتمالی هنگام تنظیم زمان فریم کلیدی انجام می شود.
ffmpeg -i in.mkv -force_key_frames 1,2,3,5,8,13,21 -codec:v mpeg4 -codec:a pcm_s16le -map 0 \
-f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 -segment_time_delta 0.05 out%03d.nut
به منظور اجبار کردن فریم های کلیدی بر روی فایل ورودی، رمزگذاری مورد نیاز است.
· با تقسیم فایل ورودی بر اساس اعداد فریم، فایل ورودی را بخش بندی کنید
دنباله مشخص شده با بخش_فریم ها گزینه:
ffmpeg -i in.mkv -کپی کدک -نقشه 0 -f بخش -segment_list out.csv -segment_frames 100,200,300,500,800 out%03d.nut
· تبدیل کنید in.mkv به بخش های TS با استفاده از رمزگذارهای "libx264" و "libfaac":
ffmpeg -i in.mkv -map 0 -codec:v libx264 -codec:a libfaac -f ssegment -segment_list out.list out%03d.ts
· فایل ورودی را بخش بندی کنید و یک لیست پخش زنده M3U8 ایجاد کنید (می توان از آن به عنوان HLS زنده استفاده کرد
منبع):
ffmpeg -re -i in.mkv -کپی کدک -نقشه 0 -f بخش -segment_list playlist.m3u8 \
-segment_list_flags +live -segment_time 10 out%03d.mkv
هموار استریم
Smooth Streaming muxer مجموعه ای از فایل ها (مانیفست، تکه ها) مناسب برای سرویس تولید می کند.
با وب سرور معمولی
اندازه_پنجره
تعداد قطعات نگهداری شده در مانیفست را مشخص کنید. پیش فرض 0 (حفظ همه).
اضافی_پنجره_اندازه
قبل از حذف از مانیفست، تعداد قطعاتی که خارج از مانیفست نگهداری می شوند را مشخص کنید
دیسک پیش فرض 5.
lookahead_count
تعداد قطعات پیش بینی را مشخص کنید. پیش فرض 2.
min_frag_duration
حداقل مدت زمان قطعه (بر حسب میکروثانیه) را مشخص کنید. پیش فرض 5000000.
remove_at_exit
مشخص کنید که آیا بعد از اتمام تمام قطعات حذف شوند یا خیر. پیش فرض 0 (حذف نشود).
توپ را روی گوه
می توان از سه راهی برای نوشتن داده های مشابه در چندین فایل یا هر نوع دیگری استفاده کرد
موکسر برای مثال می توان از آن برای پخش جریانی یک ویدیو در شبکه و ذخیره آن در شبکه استفاده کرد
همزمان دیسک
با مشخص کردن چندین خروجی به آن متفاوت است ffmpeg ابزار خط فرمان زیرا
داده های صوتی و تصویری فقط یک بار با تی مکسر کدگذاری می شوند. رمزگذاری می تواند a
فرآیند بسیار گران قیمت هنگام استفاده مستقیم از API libavformat مفید نیست زیرا
سپس میتوان همان بستهها را مستقیماً به چندین موکسر داد.
خروجی های برده در نام فایل داده شده به muxer مشخص می شوند که با «|» از هم جدا شده اند. اگر
هر یک از نام برده حاوی «|» است. جداکننده، فضاهای پیشرو یا دنباله دار یا هر کدام
شخصیت خاص، باید از آن فرار کرد (نگاه کنید به la " نقل قول و فرار کردن" بخش in la
ffmpeg-utils(1) کتابچه راهنمای).
گزینه های Muxer را می توان برای هر برده با اضافه کردن آنها به عنوان یک لیست مشخص کرد کلید=ارزش
جفتهایی که با «:» از هم جدا میشوند، بین براکتهای مربع. اگر مقادیر گزینه ها حاوی یک خاص باشد
شخصیت یا جداکننده ':'، باید از آنها فرار کرد. توجه داشته باشید که این یک سطح دوم است
فرار کردن
گزینه های ویژه زیر نیز شناسایی می شوند:
f نام قالب را مشخص کنید. اگر از پسوند نام خروجی نتوان حدس زد مفید است.
bsfs[/تنظیمات]
لیستی از فیلترهای جریان بیت را برای اعمال به خروجی مشخص شده مشخص کنید.
می توان مشخص کرد که فیلتر بیت استریم معین برای کدام جریان ها اعمال می شود
اضافه کردن یک مشخص کننده جریان به گزینه جدا شده با "/". تنظیمات باید یک جریان باشد
مشخص کننده (نگاه کنید به قالب جریان مشخصات). اگر مشخص کننده جریان مشخص نشده باشد،
فیلترهای بیت استریم برای همه جریانهای خروجی اعمال خواهند شد.
چندین فیلتر جریان بیتی را می توان مشخص کرد که با "،" از هم جدا می شوند.
را انتخاب کنید
جریان هایی را که باید با خروجی برده مشخص شده توسط یک جریان نگاشت شوند، انتخاب کنید
مشخص کننده اگر مشخص نشده باشد، این به طور پیش فرض برای همه جریان های ورودی است.
مثال ها
· چیزی را رمزگذاری کنید و هر دو آن را در یک فایل WebM بایگانی کنید و آن را به صورت MPEG-TS از طریق UDP پخش کنید.
(جریان ها باید به صراحت نقشه برداری شوند):
ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a
"archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
· استفاده کنید ffmpeg برای رمزگذاری ورودی، و ارسال خروجی به سه مقصد مختلف.
فیلتر بیت استریم "dump_extra" برای افزودن اطلاعات اضافی به همه موارد استفاده می شود
بستههای فریم کلیدی ویدیویی را مطابق با فرمت MPEG-TS خروجی میدهد. گزینه انتخاب کنید
اعمال می شود به out.aac به منظور اینکه فقط حاوی بسته های صوتی باشد.
ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac -strict تجربی
-f "[bsfs/v=dump_extra]out.ts|[movflags=+faststart]out.mp4|[select=a]out.aac"
· مانند زیر، اما فقط جریان "a:1" را برای خروجی صدا انتخاب کنید. توجه داشته باشید که سطح دوم
escaping باید انجام شود، زیرا ":" یک کاراکتر ویژه است که برای جدا کردن گزینه ها استفاده می شود.
ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac -strict تجربی
-f "[bsfs/v=dump_extra]out.ts|[movflags=+faststart]out.mp4|[select=\'a:1\']out.aac"
توجه: برخی از کدک ها بسته به فرمت خروجی ممکن است به گزینه های مختلفی نیاز داشته باشند. خودکار
تشخیص این نمی تواند با سه راهی muxer کار کند. مثال اصلی آن است global_header
پرچم.
webm_dash_manifest
WebM DASH مانیفست muxer.
این muxer مشخصات WebM DASH Manifest را برای تولید مانیفست DASH پیاده سازی می کند
XML. همچنین از تولید مانیفست برای پخشهای زنده DASH پشتیبانی میکند.
برای اطلاعات بیشتر ببین:
· مشخصات WebM DASH:
<https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-dash-specification>
· مشخصات ISO DASH:
<http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip>
گزینه
این muxer گزینه های زیر را پشتیبانی می کند:
سازگاری_مجموعه ها
این گزینه دارای نحو زیر است: "id=x,streams=a,b,c id=y,streams=d,e" که در آن x
و y شناسه های منحصر به فرد مجموعه های انطباق هستند و a،b،c،d و e
شاخص های جریان های صوتی و تصویری مربوطه. هر تعداد مجموعه انطباق
با استفاده از این گزینه می توان اضافه کرد.
زنده
این را روی 1 تنظیم کنید تا مانیفست DASH پخش جریانی زنده ایجاد شود. پیش فرض: 0.
chunk_start_index
فهرست شروع اولین تکه. این در خواهد رفت شماره شروع ویژگی از
SegmentTemplate عنصر در مانیفست پیش فرض: 0.
chunk_duration_ms
مدت زمان هر قطعه بر حسب میلی ثانیه. این در خواهد رفت مدت ویژگی از
SegmentTemplate عنصر در مانیفست پیش فرض: 1000.
UTC_TIMING_URL
نشانی وب صفحه ای که مهر زمانی UTC را در قالب ISO برمی گرداند. این در خواهد رفت
ارزش ویژگی از UTCTiming عنصر در مانیفست پیش فرض: هیچ.
time_shift_buffer_depth
کوچکترین زمان (بر حسب ثانیه) جابجایی بافر که هر گونه نمایندگی برای آن تضمین شده است
در دسترس بودن این در خواهد رفت timeShiftBufferDepth ویژگی از MPD
عنصر پیش فرض: 60.
حداقل_دوره_به روز رسانی
حداقل دوره بهروزرسانی (بر حسب ثانیه) مانیفست. این در خواهد رفت
minimalUpdatePeriod ویژگی از MPD عنصر پیش فرض: 0.
مثال
ffmpeg -f webm_dash_manifest -i video1.webm \
-f webm_dash_manifest -i video2.webm \
-f webm_dash_manifest -i audio1.webm \
-f webm_dash_manifest -i audio2.webm \
-نقشه 0 -نقشه 1 -نقشه 2 -نقشه 3 \
-c کپی \
-f webm_dash_manifest \
-adaptation_sets "id=0,streams=0,1 id=1,streams=2,3" \
manifest.xml
webm_chunk
WebM Live Chunk Muxer.
این muxer سرصفحه ها و تکه های WebM را به عنوان فایل های جداگانه می نویسد که می تواند توسط آنها مصرف شود
کلاینت هایی که از جریان های زنده WebM از طریق DASH پشتیبانی می کنند.
گزینه
این muxer گزینه های زیر را پشتیبانی می کند:
chunk_start_index
فهرست اولین تکه (به طور پیش فرض 0).
هدر
نام فایل هدر که داده های اولیه در آن نوشته می شود.
صوتی_تکه_مدت
مدت زمان هر قطعه صوتی بر حسب میلی ثانیه (پیش فرض تا 5000).
مثال
ffmpeg -f v4l2 -i /dev/video0 \
-f alsa -i hw: 0 \
-نقشه 0:0 \
-c:v libvpx-vp9 \
-s 640x360 -keyint_min 30 -g 30 \
-f webm_chunk \
-header webm_live_video_360.hdr \
-chunk_start_index 1 \
webm_live_video_360_%d.chk \
-نقشه 1:0 \
-c:a libvorbis \
-b:a 128k \
-f webm_chunk \
-header webm_live_audio_128.hdr \
-chunk_start_index 1 \
-audio_chunk_duration 1000 \
webm_live_audio_128_%d.chk
METADATA
FFmpeg میتواند ابردادهها را از فایلهای رسانهای به یک متن ساده شبیه به INI با کدگذاری UTF-8 تخلیه کند.
فایل و سپس با استفاده از metadata muxer/demuxer دوباره آن را بارگیری کنید.
فرمت فایل به شرح زیر است:
1. یک فایل شامل یک سربرگ و تعدادی تگ فراداده است که هر کدام به بخشهایی تقسیم میشوند
روی خط خودش
2. سربرگ a است FFMETADATA رشته، به دنبال آن یک شماره نسخه (اکنون 1).
3. تگ های فراداده از این شکل هستند کلید = ارزش
4. بلافاصله پس از هدر، ابرداده جهانی را دنبال می کند
5. بعد از فراداده سراسری ممکن است بخش هایی با فراداده هر جریان/در فصل وجود داشته باشد.
6. یک بخش با نام بخش با حروف بزرگ شروع می شود (یعنی STREAM یا CHAPTER) در
براکت ([, ]) و با بخش بعدی یا انتهای فایل به پایان می رسد.
7. در ابتدای یک بخش ممکن است یک پایگاه زمانی اختیاری برای استفاده وجود داشته باشد
مقادیر شروع/پایان باید در فرم باشد TIMEBASE=تعداد/روز، که در آن تعداد و روز اعداد صحیح هستند
اگر پایگاه زمانی وجود نداشته باشد، زمان شروع/پایان بر حسب میلی ثانیه در نظر گرفته می شود.
بعد یک بخش فصل باید شامل زمان شروع و پایان فصل در فرم باشد START=تعداد,
پایان =تعداد، که در آن تعداد یک عدد صحیح مثبت است
8. خطوط خالی و شروع خطوط ; or # نادیده گرفته می شوند
9. کلیدهای فراداده یا مقادیر حاوی کاراکترهای خاص (=, ;, #, \ و یک خط جدید) باید
با بک اسلش فرار کرد \.
10. توجه داشته باشید که فضای خالی در ابرداده (به عنوان مثال فو = بار) بخشی از تلقی می شود
برچسب (در مثال بالا کلید است فو ، ارزش است
بار).
یک فایل ffmetadata ممکن است به شکل زیر باشد:
FFMETADATA1
عنوان = دوچرخه \\ سوله
؛ این یک نظر است
هنرمند=تیم ترول FFmpeg
[فصل]
TIMEBASE=1/1000
START=0
#فصل در ساعت 0:01:00 به پایان می رسد
پایان = 60000
عنوان=فصل \#1
[جریان]
عنوان=چند\
خط
با استفاده از ffmetadata muxer و demuxer می توان متادیتا را از یک ورودی استخراج کرد.
فایل را در یک فایل ffmetadata قرار دهید و سپس فایل را به یک فایل خروجی تبدیل کنید
فایل ffmetadata ویرایش شده
استخراج فایل ffmetadata با ffmpeg به شرح زیر می شود:
ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
درج مجدد اطلاعات فراداده ویرایش شده از فایل FFMETADATAFILE می تواند به صورت زیر انجام شود:
ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -کپی کدک OUTPUT
با استفاده از خدمات onworks.net از فرمتهای ffmpeg به صورت آنلاین استفاده کنید