To jest polecenie ffmpeg-formats, które można uruchomić w darmowym dostawcy usług hostingowych OnWorks przy użyciu jednej z wielu naszych bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online MAC OS
PROGRAM:
IMIĘ
formaty ffmpeg - formaty FFmpeg
OPIS
Ten dokument opisuje obsługiwane formaty (multipleksery i demultipleksery) dostarczane przez
biblioteka libavformat.
FORMAT OPCJE
Biblioteka libavformat udostępnia kilka ogólnych opcji globalnych, które można ustawić na wszystkich
muxery i demuksery. Dodatkowo każdy muxer lub demuxer może obsługiwać tzw
opcje, które są specyficzne dla tego komponentu.
Opcje można ustawić, określając -opcja wartość w narzędziach FFmpeg lub przez ustawienie
wartość jawnie w opcjach „AVFormatContext” lub za pomocą libavutil/opt.h API dla
użycie programistyczne.
Lista obsługiwanych opcji jest następująca:
flagi lotnicze Flagi (wejście wyjście)
Możliwa wartość:
kierować
Zmniejsz buforowanie.
rozmiar sondy liczba całkowita (wkład)
Ustaw rozmiar sondowania w bajtach, tj. rozmiar danych do analizy w celu uzyskania strumienia
Informacja. Wyższa wartość umożliwi wykrycie większej ilości informacji w przypadku, gdy jest
rozproszone w strumieniu, ale zwiększy opóźnienie. Musi być liczbą całkowitą nie mniejszą
niż 32. Domyślnie jest to 5000000.
rozmiar pakietu liczba całkowita (wydajność)
Ustaw rozmiar pakietu.
flagi Flagi (wejście wyjście)
Ustaw flagi formatu.
Możliwa wartość:
zapalić
Ignoruj indeks.
szybkie wyszukiwanie
Włącz szybkie, ale niedokładne wyszukiwanie niektórych formatów.
dżentelmen
Generuj PTS.
nofillin
Nie uzupełniaj brakujących wartości, które można dokładnie obliczyć.
nie analizować
Wyłącz AVparsery, to również wymaga "+nofillin".
Ignidts
Ignoruj DTS.
odrzuć zepsucie
Odrzuć uszkodzone ramki.
sortowane
Spróbuj przeplatać pakiety wyjściowe przez DTS.
na miejscu
Nie łącz danych pobocznych.
łac
Włącz ładunek RTP MP4A-LATM.
bez bufora
Zmniejsz opóźnienie wprowadzone przez opcjonalne buforowanie
bitdokładny
Zapisuj tylko dane niezależne od platformy, kompilacji i czasu. Gwarantuje to, że plik
a sumy kontrolne danych są odtwarzalne i pasują do różnych platform. Jego główne zastosowanie
służy do testowania regresji.
szukaj2dowolnego liczba całkowita (wkład)
Zezwalaj na wyszukiwanie do klatek innych niż klatki kluczowe na poziomie demuxera, jeśli jest obsługiwane, jeśli jest ustawione na 1. Domyślne
to 0.
analizowanie liczba całkowita (wkład)
Określ, ile mikrosekund jest analizowanych w celu sondowania danych wejściowych. Wyższa wartość będzie
umożliwi wykrywanie dokładniejszych informacji, ale zwiększy opóźnienie. Domyślnie:
5,000,000 5 XNUMX mikrosekund = XNUMX sekund.
klucz kryptograficzny szesnastkowy ciąg (wkład)
Ustaw klucz deszyfrowania.
pamięć indeksu liczba całkowita (wkład)
Ustaw maksymalną pamięć używaną dla indeksu znacznika czasu (na strumień).
rozmiar rtbuf liczba całkowita (wkład)
Ustaw maksymalną pamięć używaną do buforowania ramek w czasie rzeczywistym.
fdebug Flagi (wejście wyjście)
Wydrukuj szczegółowe informacje debugowania.
Możliwa wartość:
ts
maksymalne_opóźnienie liczba całkowita (wejście wyjście)
Ustaw maksymalne opóźnienie muxingu lub demuxingu w mikrosekundach.
rozmiar sondy fps liczba całkowita (wkład)
Ustaw liczbę klatek używanych do sondowania fps.
audio_wstępne ładowanie liczba całkowita (wydajność)
Ustaw mikrosekundy, o które pakiety audio powinny być przeplatane wcześniej.
fragment_czas trwania liczba całkowita (wydajność)
Ustaw mikrosekundy dla każdego kawałka.
rozmiar_fragmentu liczba całkowita (wydajność)
Ustaw rozmiar w bajtach dla każdej porcji.
err_detect, f_err_detect Flagi (wkład)
Ustaw flagi wykrywania błędów. „f_err_detect” jest przestarzały i powinien być używany tylko przez
dotychczasowy ffmpeg narzędziem.
Możliwa wartość:
sprawdź
Sprawdź osadzone CRC.
strumień bitów
Wykryj odchylenia specyfikacji strumienia bitów.
bufor
Wykryj nieprawidłową długość strumienia bitów.
eksplodować
Przerwij dekodowanie po wykryciu drobnego błędu.
ostrożny
Rozważ rzeczy, które naruszają specyfikację i nie były widziane na wolności jako
błędy.
zgodny
Wszystkie niezgodności ze specyfikacją należy traktować jako błędy.
agresywny
Potraktuj rzeczy, których rozsądny enkoder nie powinien robić, jako błąd.
max_interleave_delta liczba całkowita (wydajność)
Ustaw maksymalny czas buforowania dla przeplatania. Czas trwania jest wyrażony w
mikrosekundy i domyślnie 1000000 (1 sekunda).
Aby upewnić się, że wszystkie strumienie są poprawnie przeplatane, libavformat poczeka, aż to się stanie
ma co najmniej jeden pakiet dla każdego strumienia przed faktycznym zapisaniem jakichkolwiek pakietów w
plik wyjściowy. Gdy niektóre strumienie są „rzadkie” (tj. występują duże odstępy między
kolejnych pakietów), może to spowodować nadmierne buforowanie.
To pole określa maksymalną różnicę między znacznikami czasu pierwszego i
ostatni pakiet w kolejce muxingu, powyżej którego libavformat wyśle pakiet
niezależnie od tego, czy umieścił pakiet w kolejce dla wszystkich strumieni.
Jeśli ustawione na 0, libavformat będzie kontynuował buforowanie pakietów, dopóki nie będzie miał pakietu dla
każdy strumień, niezależnie od maksymalnej różnicy sygnatury czasowej między buforowanym
pakiety.
use_wallclock_as_timestamps liczba całkowita (wkład)
Użyj zegara ściennego jako znacznika czasu.
unikaj_ujemnych_ts liczba całkowita (wydajność)
Możliwa wartość:
make_non_negative
Przesuń znaczniki czasu, aby były nieujemne. Pamiętaj też, że dotyczy to tylko
wiodące ujemne sygnatury czasowe, a nie niemonotoniczne ujemne sygnatury czasowe.
make_zero
Przesuń sygnatury czasowe tak, aby pierwszy sygnatury czasowe wynosiły 0.
samochód (Domyślne)
Umożliwia przesuwanie, gdy jest to wymagane przez format docelowy.
niepełnosprawny
Wyłącza przesuwanie znacznika czasu.
Gdy przesunięcie jest włączone, wszystkie wyjściowe znaczniki czasu są przesuwane o tę samą wartość. Audio,
wideo, desynchronizacja napisów i względne różnice sygnatury czasowej są zachowane
w porównaniu z tym, jak wyglądaliby bez zmiany.
pomiń_początkowe_bajty liczba całkowita (wkład)
Ustaw liczbę bajtów do pominięcia przed odczytaniem nagłówka i ramek, jeśli jest ustawiona na 1. Domyślna wartość to
0.
Correct_ts_overflow liczba całkowita (wkład)
Popraw przepełnienia pojedynczego znacznika czasu, jeśli ustawiono na 1. Wartość domyślna to 1.
pakiety_flush liczba całkowita (wydajność)
Opróżnij bazowy strumień we/wy po każdym pakiecie. Domyślnie 1 włącza to i ma
efekt zmniejszenia latencji; 0 wyłącza to i może nieznacznie zwiększyć wydajność w
w niektórych przypadkach.
wyjście_ts_przesunięcie offset (wydajność)
Ustaw przesunięcie czasu wyjścia.
offset musi być specyfikacją czasu trwania, patrz dotychczasowy Czas czas trwania Sekcja in dotychczasowy
narzędzia ffmpeg(1) podręcznik.
Przesunięcie jest dodawane przez muxer do wyjściowych znaczników czasu.
Określenie dodatniego przesunięcia oznacza, że odpowiednie strumienie są opóźnione w czasie
czas trwania określony w offset. Wartość domyślna to 0 (co oznacza, że żadne przesunięcie nie jest
stosowany).
format_białej listy podstęp (wkład)
"," oddzielona Lista dozwolonych demukserów. Domyślnie wszystkie są dozwolone.
separator_zrzutu ciąg (wkład)
Separator używany do oddzielenia pól drukowanych w wierszu poleceń dotyczących Stream
parametry. Na przykład, aby oddzielić pola znakami nowej linii i wcięciami:
ffprobe -dump_separator "
" -i ~/video/matrixbench_mpeg2.mpg
utworzony strumień specyfikatorzy
Specyfikatory strumienia formatu umożliwiają wybór jednego lub więcej strumieni, które pasują do określonego
Właściwości.
Możliwe formy specyfikatorów strumienia to:
strumień_indeks
Dopasowuje strumień do tego indeksu.
typ_strumienia[:strumień_indeks]
typ_strumienia jest jednym z następujących: „v” dla wideo, „a” dla dźwięku, „s” dla napisów, „d”
dla danych i 't' dla załączników. Jeśli strumień_indeks jest podany, to pasuje do
numer strumienia strumień_indeks tego typu. W przeciwnym razie pasuje do wszystkich strumieni tego
rodzaj.
p:identyfikator_programu[:strumień_indeks]
If strumień_indeks jest podany, to dopasowuje strumień o numerze strumień_indeks
program o id identyfikator_programu. W przeciwnym razie dopasowuje wszystkie strumienie w programie.
#identyfikator_strumienia
Dopasowuje strumień według identyfikatora specyficznego dla formatu.
Dokładna semantyka specyfikatorów strumienia jest zdefiniowana przez
Funkcja „avformat_match_stream_specifier()” zadeklarowana w libavformat/avformat.h
header.
DEMUXERY
Demuxery to skonfigurowane elementy w FFmpeg, które mogą odczytywać strumienie multimedialne z
konkretny typ pliku.
Podczas konfigurowania kompilacji FFmpeg wszystkie obsługiwane demuksery są domyślnie włączone.
Możesz wyświetlić listę wszystkich dostępnych za pomocą opcji konfiguracji "--list-demuxers".
Możesz wyłączyć wszystkie demuksery za pomocą opcji konfiguracji "--disable-demuxers" i
selektywnie włącz pojedynczy demuxer z opcją "--enable-demuxer=DEMUXER”lub wyłącz
to z opcją "--disable-demuxer=DEMUXER”.
Opcja "-formats" narzędzi ff* wyświetli listę włączonych demukserów.
Poniżej opisano niektóre z aktualnie dostępnych demukserów.
aa
Dźwiękowy demuxer formatu 2, 3 i 4.
Ten demuxer służy do demuksowania plików Audible Format 2, 3 i 4 (.aa).
jabłkohttp
Demuxer Apple HTTP Live Streaming.
Ten demuxer prezentuje wszystkie strumienie AVStream ze wszystkich strumieni wariantowych. Pole id jest ustawione na
numer indeksu wariantu szybkości transmisji bitów. Ustawiając flagi odrzucania na strumieniach AV (przez naciśnięcie „a”
lub 'v' w ffplay), dzwoniący może zdecydować, które warianty strumieni faktycznie odbierać. ten
całkowity bitrate wariantu, do którego należy strumień, jest dostępny w kluczu metadanych
o nazwie „wariant_bitrate”.
apg
Animowany demuxer przenośnej grafiki sieciowej.
Ten demuxer służy do demuksowania plików APNG. Wszystkie nagłówki oprócz podpisu PNG, do (ale
nie wliczając) pierwsza porcja fcTL jest przesyłana jako extradata. Ramki są następnie dzielone
jako wszystkie porcje pomiędzy dwoma fcTL lub pomiędzy ostatnimi porcjami fcTL i IEND.
-ignore_loop bool
Zignoruj zmienną pętli w pliku, jeśli jest ustawiona.
-max_fps int
Maksymalna liczba klatek na sekundę w klatkach na sekundę (0 bez limitu).
-domyślny_fps int
Domyślna liczba klatek na sekundę w klatkach na sekundę, gdy żadna nie jest określona w pliku (0 co oznacza
tak szybko, jak to tylko możliwe).
asf
Demuxer formatu Advanced Systems Format.
Ten demuxer służy do demuksowania plików ASF i strumieni sieciowych MMS.
-no_resync_search bool
Nie próbuj ponownie synchronizować, szukając określonego opcjonalnego kodu startowego.
konkat
Wirtualny demuxer skryptów konkatenacji.
Ten demuxer odczytuje listę plików i innych dyrektyw z pliku tekstowego i demuxuje je
jeden po drugim, jakby wszystkie ich pakiety zostały ze sobą zmiksowane.
Znaczniki czasu w plikach są dostosowywane tak, aby pierwszy plik zaczynał się od 0, a każdy następny
plik zaczyna się tam, gdzie kończy się poprzedni. Pamiętaj, że odbywa się to globalnie i może powodować
przerwy, jeśli wszystkie strumienie nie mają dokładnie tej samej długości.
Wszystkie pliki muszą mieć te same strumienie (te same kodeki, ta sama podstawa czasu itp.).
Czas trwania każdego pliku jest używany do dostosowania znaczników czasu następnego pliku: jeśli
czas trwania jest nieprawidłowy (ponieważ został obliczony przy użyciu przepływności lub ponieważ plik jest
na przykład obcięty), może powodować artefakty. Dyrektywa „czas trwania” może służyć do:
zastąpić czas trwania przechowywany w każdym pliku.
Składnia
Skrypt jest plikiem tekstowym w rozszerzonym ASCII, z jedną dyrektywą w wierszu. Puste linie,
spacje wiodące i linie zaczynające się od „#” są ignorowane. Następująca dyrektywa to
rozpoznano:
"plik ścieżka"
Ścieżka do pliku do odczytania; znaki specjalne i spacje muszą być poprzedzone odwrotnym ukośnikiem
lub pojedyncze cytaty.
Wszystkie kolejne dyrektywy dotyczące pliku mają zastosowanie do tego pliku.
„ffconcat wersja 1.0 "
Określ typ i wersję skryptu. Określa również "bezpiecznym" opcja na 1, jeśli to było
jego wartość domyślna -1.
Aby FFmpeg rozpoznał format automatycznie, ta dyrektywa musi pojawić się dokładnie
tak jak jest (bez dodatkowej spacji lub znaku kolejności bajtów) w pierwszym wierszu skryptu.
"Trwanie dur"
Czas trwania pliku. Informacje te można określić z pliku; określając to
tutaj może być bardziej wydajne lub pomocne, jeśli informacje z pliku nie są dostępne
lub dokładne.
Jeśli czas trwania jest ustawiony dla wszystkich plików, to możliwe jest wyszukiwanie w całości
połączone wideo.
"w punkcie znak czasu"
W punkcie pliku. Gdy demuxer otworzy plik, natychmiast szuka w
określony znacznik czasu. Wyszukiwanie odbywa się tak, aby wszystkie strumienie mogły zostać pomyślnie zaprezentowane
w pkt.
Ta dyrektywa działa najlepiej z kodekami wewnątrzramkowymi, ponieważ w przypadku kodeków innych niż wewnątrzramkowe
zazwyczaj otrzymasz dodatkowe pakiety przed faktycznym punktem wejścia i zdekodowaną zawartością
najprawdopodobniej będzie zawierał również ramki przed punktem In.
Dla każdego pliku pakiety przed punktem pliku In będą miały sygnatury czasowe mniejsze niż
wyliczony znacznik czasu rozpoczęcia pliku (ujemny w przypadku pierwszego pliku), a
czas trwania plików (jeśli nie jest określony przez dyrektywę „duration”) zostanie skrócony
na podstawie ich określonych w pkt.
Ze względu na potencjalne pakiety przed określonym punktem In, znaczniki czasowe pakietów mogą:
nakładają się między dwoma połączonymi plikami.
„punkt wyjścia znak czasu"
Out punkt pliku. Kiedy demuxer osiągnie określony znacznik czasu dekodowania w
którykolwiek ze strumieni, traktuje go jako warunek końca pliku i pomija bieżący
i wszystkie pozostałe pakiety ze wszystkich strumieni.
Out point jest wykluczający, co oznacza, że demuxer nie będzie wyprowadzał pakietów z a
znacznik czasu dekodowania większy lub równy punktowi Out.
Ta dyrektywa działa najlepiej w przypadku kodeków i formatów wewnątrzramkowych, w których znajdują się wszystkie strumienie
ciasno przeplatane. W przypadku kodeków innych niż wewnątrzramkowe zazwyczaj otrzymasz dodatkowe
pakiety ze znacznikiem czasu prezentacji po punkcie Out, dlatego dekodowana zawartość będzie
najprawdopodobniej zawierają również ramki po punkcie Out. Jeśli twoje strumienie nie są ciasne
przeplatany możesz nie otrzymać wszystkich pakietów ze wszystkich strumieni przed punktem Out i tobą
może być w stanie odszyfrować tylko najwcześniejszy strumień do punktu Out.
Czas trwania plików (jeśli nie jest określony przez dyrektywę „duration”) będzie:
zmniejszona na podstawie ich określonego punktu Out.
„metadane_pliku_pakietu klucz=wartość"
Metadane pakietów pliku. Określone metadane zostaną ustawione dla każdego pliku
paczka. Możesz podać tę dyrektywę wiele razy, aby dodać wiele metadanych
wpisy.
"strumień"
Wprowadź strumień w wirtualnym pliku. Wszystkie kolejne dyrektywy związane ze strumieniem
stosuje się do ostatniego wprowadzonego strumienia. Niektóre właściwości strumieni muszą być ustawione, aby:
umożliwiają identyfikację pasujących strumieni w podplikach. Jeśli żadne strumienie nie są zdefiniowane w
skryptu, strumienie z pierwszego pliku są kopiowane.
„dokładny_id_strumienia id"
Ustaw identyfikator strumienia. Jeśli podana jest ta dyrektywa, ciąg z
zostanie użyty odpowiedni identyfikator w podplikach. Jest to szczególnie przydatne w przypadku MPEG-PS
(VOB), gdzie kolejność strumieni nie jest wiarygodna.
Opcje
Ten demuxer akceptuje następującą opcję:
"bezpiecznym"
Jeśli jest ustawiony na 1, odrzuć niebezpieczne ścieżki plików. Ścieżka do pliku jest uważana za bezpieczną, jeśli nie
zawierają specyfikację protokołu i są względne, a wszystkie składniki zawierają tylko
znaki z przenośnego zestawu znaków (litery, cyfry, kropka, podkreślenie i
myślnik) i nie mają kropki na początku składnika.
Jeśli jest ustawiony na 0, akceptowana jest dowolna nazwa pliku.
Wartość domyślna to -1, jest to równoważne 1, jeśli format został automatycznie zbadany i 0
Inaczej.
auto_konwersja
Jeśli jest ustawiony na 1, spróbuj wykonać automatyczną konwersję danych pakietowych, aby utworzyć strumienie
z możliwością łączenia. Wartość domyślna to 1.
Obecnie jedyną konwersją jest dodanie filtra strumienia bitów h264_mp4toannexb do
Strumienie H.264 w formacie MP4. Jest to konieczne w szczególności w przypadku rozwiązania
zmiany.
flv
Demuxer formatu Adobe Flash Video.
Ten demuxer służy do demuksowania plików FLV i strumieni sieciowych RTMP.
-flv_metadane bool
Przydziel strumienie zgodnie z zawartością tablicy onMetaData.
biblioteka
Biblioteka Game Music Emu to kolekcja emulatorów plików muzycznych z gier wideo.
Widziećhttp://code.google.com/p/game-music-emu/> więcej informacji.
Niektóre pliki mają wiele ścieżek. Demuxer domyślnie wybierze pierwszy utwór. ten
indeks_ścieżki opcja może być użyta do wybrania innego utworu. Indeksy utworów zaczynają się od 0
demuxer eksportuje liczbę utworów jako utworów wprowadzanie metadanych.
W przypadku bardzo dużych plików największy rozmiar opcja może wymagać dostosowania.
libquvi
Odtwarzaj multimedia z usług internetowych za pomocą projektu quvi.
Demuxer akceptuje a format możliwość zażądania określonej jakości. Domyślnie jest ustawiony na
Najlepiej.
Widziećhttp://quvi.sourceforge.net/> więcej informacji.
FFmpeg musi być zbudowany z "--enable-libquvi", aby ten demuxer był włączony.
gif
Animowany demukser GIF.
Akceptuje następujące opcje:
min_opóźnienie
Ustaw minimalne prawidłowe opóźnienie między klatkami w setnych częściach sekundy. Zakres wynosi od 0 do
6000. Wartość domyślna to 2.
max_gif_opóźnienie
Ustaw maksymalne prawidłowe opóźnienie między klatkami w setnych sekundach. Zakres wynosi od 0 do
65535. Wartość domyślna to 65535 (prawie jedenaście minut), maksymalna wartość dozwolona przez
Specyfikacja.
domyślne_opóźnienie
Ustaw domyślne opóźnienie między klatkami w setnych częściach sekundy. Zakres wynosi od 0 do 6000.
Wartość domyślna to 10.
ignoruj_pętlę
Pliki GIF mogą zawierać informacje do zapętlenia określoną liczbę razy (lub w nieskończoność).
If ignoruj_pętlę jest ustawiony na 1, to ustawienie pętli z wejścia zostanie zignorowane i
zapętlenie nie wystąpi. Jeśli jest ustawiony na 0, nastąpi zapętlenie i zapętli liczbę
razy według GIF. Wartość domyślna to 1.
Na przykład za pomocą filtra nakładki umieść nieskończenie zapętlony plik GIF na innym filmie:
ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex overlay=najkrótszy=1 out.mkv
Zauważ, że w powyższym przykładzie najkrótsza opcja dla filtra nakładki jest używana do zakończenia
wyjście wideo o długości najkrótszego pliku wejściowego, którym w tym przypadku jest wejście.mp4 as
GIF w tym przykładzie zapętla się w nieskończoność.
image2
Demuxer plików graficznych.
Ten demuxer odczytuje listę plików obrazów określonych przez wzorzec. Składnia i
znaczenie wzoru określa opcja typ_wzoru.
Wzór może zawierać przyrostek, który służy do automatycznego określania formatu
obrazy zawarte w plikach.
Rozmiar, format w pikselach i format każdego obrazu muszą być takie same dla wszystkich
pliki w kolejności.
Ten demuxer akceptuje następujące opcje:
framerate
Ustaw szybkość klatek dla strumienia wideo. Domyślnie jest to 25.
pętla
Jeśli jest ustawiony na 1, zapętl wejście. Wartość domyślna to 0.
typ_wzoru
Wybierz typ wzorca używany do interpretacji podanej nazwy pliku.
typ_wzoru przyjmuje jedną z następujących wartości.
Żaden
Wyłącz dopasowywanie wzorców, dlatego wideo będzie zawierać tylko określone
obraz. Powinieneś użyć tej opcji, jeśli nie chcesz tworzyć sekwencji z
wiele obrazów, a nazwy plików mogą zawierać specjalne znaki wzorca.
sekwencja
Wybierz typ wzorca sekwencji, używany do określenia sekwencji plików indeksowanych przez
kolejne numery.
Wzorzec sekwencji może zawierać ciąg "%d" lub "%0Nd", który określa
pozycja znaków reprezentujących kolejny numer w każdej nazwie pliku
dopasowane do wzoru. Jeśli formularz „%d0Nd", ciąg reprezentujący
liczba w każdej nazwie pliku jest wypełniona zerami i N to całkowita liczba cyfr uzupełnionych 0
reprezentujący liczbę. Dosłowny znak '%' można określić we wzorcu
z ciągiem "%%".
Jeśli wzorzec sekwencji zawiera „%d” lub „%0Nd", pierwsza nazwa pliku w pliku
lista określona przez wzorzec musi zawierać liczbę zawartą między
numer_początkowy i numer_początkowy+zakres_numeru_początkowego-1 i wszystkie poniższe liczby
musi być sekwencyjny.
Na przykład wzorzec „img-%03d.bmp” będzie pasował do sekwencji nazw plików
Nasz formularz img-001.bmp, img-002.bmp..., img-010.bmpitp.; wzór
"i%%m%%g-%d.jpg" loading="leniwy" dopasuje sekwencję nazw plików formularza i% m% g-1.jpg,
i% m% g-2.jpg..., i% m% g-10.jpg, itp.
Pamiętaj, że wzór nie musi koniecznie zawierać „%d” lub „%0Nd", na przykład do
przekonwertować pojedynczy plik obrazu img.jpeg możesz użyć polecenia:
ffmpeg -i img.jpeg img.png
kula
Wybierz typ wzorca symbolu wieloznacznego.
Wzorzec jest interpretowany jak wzorzec „glob()”. Można to wybrać tylko wtedy, gdy
libavformat został skompilowany z obsługą globalizacji.
globalna sekwencja (przestarzałe, będzie be REMOVED)
Wybierz mieszany wzorzec symboli wieloznacznych/sekwencji.
Jeśli twoja wersja libavformat została skompilowana z obsługą globbingu, a
podany wzorzec zawiera co najmniej jeden znak meta glob wśród "%*?[]{}", czyli
poprzedzony znakiem „%” bez ucieczki, wzorzec jest interpretowany jako wzorzec „glob()”,
w przeciwnym razie jest interpretowany jak wzorzec sekwencji.
Wszystkie znaki specjalne „%*?[]{}” muszą być poprzedzone prefiksem „%”. Uciec
dosłowny "%" powinieneś użyć "%%".
Na przykład wzorzec "foo-%*.jpeg" będzie pasował do wszystkich nazw plików poprzedzonych przez
„foo-” i kończące się na „.jpeg” oraz „foo-%?%?%?.jpeg” dopasują wszystkie
nazwy plików poprzedzone przedrostkiem „foo-”, po którym następuje sekwencja trzech znaków, oraz
kończąc na ".jpeg".
Ten typ wzorca jest przestarzały na korzyść kula i sekwencja.
Wartość domyślna to globalna sekwencja.
format_piksela
Ustaw format pikseli obrazów do odczytu. Jeśli nie określono, format pikseli to
odgadnąć z pierwszego pliku obrazu w sekwencji.
numer_początkowy
Ustaw indeks pliku odpowiadającego wzorcowi pliku obrazu, od którego ma się rozpocząć czytanie.
Wartość domyślna to 0.
zakres_numeru_początkowego
Ustaw zakres interwału indeksu, aby sprawdzić podczas wyszukiwania pierwszego pliku obrazu w
sekwencja, zaczynając od numer_początkowy. Wartość domyślna to 5.
ts_z_pliku
Jeśli jest ustawiony na 1, ustawi znacznik czasu ramki na czas modyfikacji pliku obrazu. Zauważ, że
nie jest zapewniona jednostajność znaczników czasu: obrazy układają się w tej samej kolejności, co bez tego
opcja. Domyślna wartość to 0. Jeśli ustawione na 2, ustawi znacznik czasu ramki na modyfikację
czas pliku obrazu z dokładnością do nanosekund.
rozmiar wideo
Ustaw rozmiar wideo obrazów do odczytania. Jeśli nie określono, rozmiar wideo jest odgadywany
z pierwszego pliku obrazu w sekwencji.
Przykłady
· Posługiwać się ffmpeg do tworzenia wideo z obrazów w sekwencji plików img-001.jpeg,
img-002.jpeg, ..., przy założeniu, że częstotliwość wejściowa wynosi 10 klatek na sekundę:
ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
· Jak wyżej, ale zacznij od odczytu z pliku o indeksie 100 w kolejności:
ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
· Odczytywanie obrazków pasujących do wzorca "*.png" loading="lazy" glob , czyli wszystkich plików kończących się
przyrostek ".png" loading="leniwy":
ffmpeg -framerate 10 -pattern_type glob -i "*.png" loading="leniwy" out.mkv
mov/mp4/3gp/Quickme
Demuxer Quicktime / MP4.
Ten demuxer akceptuje następujące opcje:
włącz_drefy
Włącz ładowanie ścieżek zewnętrznych, domyślnie wyłączone. Włączenie tego może
teoretycznie wyciek informacji w niektórych przypadkach użycia.
użyj_ścieżki_absolutnej
Umożliwia ładowanie ścieżek zewnętrznych za pomocą ścieżek bezwzględnych, domyślnie wyłączonych. Włączanie
stwarza to zagrożenie bezpieczeństwa. Powinno być włączone tylko wtedy, gdy wiadomo, że źródło nie jest
złośliwy.
mpegty
Demukser strumienia transportowego MPEG-2.
Ten demuxer akceptuje następujące opcje:
rozmiar_resynchronizacji
Ustaw limit rozmiaru do wyszukiwania nowej synchronizacji. Wartość domyślna to 65536.
fix_teletext_pts
Zastąp wartości PTS i DTS pakietów teletekstu znacznikami czasu obliczonymi na podstawie
PCR pierwszego programu, którego częścią jest strumień teletekstu i który nie jest odrzucany.
Wartość domyślna to 1, ustaw tę opcję na 0, jeśli chcesz, aby Twój pakiet teletekstu PTS i DTS
wartości nietknięte.
ts_packetsize
Opcja wyjścia przenosząca surowy rozmiar pakietu w bajtach. Pokaż wykryty surowy pakiet
rozmiar, nie może być ustawiony przez użytkownika.
scan_all_pmts
Skanuj i łącz wszystkie PMT. Wartość jest liczbą całkowitą o wartości od -1 do 1 (-1 oznacza
ustawienie automatyczne, 1 oznacza włączone, 0 oznacza wyłączone). Wartość domyślna to -1.
surowe wideo
Surowy demuxer wideo.
Ten demuxer umożliwia odczyt surowych danych wideo. Ponieważ nie ma nagłówka określającego
zakładane parametry wideo, użytkownik musi je określić, aby móc je zdekodować
dane poprawnie.
Ten demuxer akceptuje następujące opcje:
framerate
Ustaw szybkość klatek wejściowego wideo. Wartość domyślna to 25.
format_piksela
Ustaw format wejściowych pikseli wideo. Wartość domyślna to „yuv420p”.
rozmiar wideo
Ustaw rozmiar wejściowego wideo. Ta wartość musi być określona jawnie.
Na przykład, aby przeczytać plik rawvideo input.raw w ffplay, przy założeniu, że format piksela wynosi
„rgb24”, rozmiar wideo „320x240” i liczba klatek na sekundę 10 obrazów na sekundę, użyj
polecenie:
ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -liczba klatek na sekundę 10 input.raw
sbg
Demukser skryptów SBaGen.
Ten demuxer odczytuje język skryptowy używany przez SBaGenhttp://uazu.net/sbagen/> do
generować sesje dudnień różnicowych. Skrypt SBG wygląda tak:
-SAMEGO SIEBIE
a: 300-2.5/3 440+4.5/0
b: 300-2.5/0 440+4.5/3
wyłączony: -
TERAZ == a
+0:07:00 == b
+0:14:00 == za
+0:21:00 == b
+0:30:00 wyłączone
Skrypt SBG może mieszać bezwzględne i względne znaczniki czasu. Jeśli skrypt używa tylko
bezwzględne znaczniki czasu (w tym czas rozpoczęcia skryptu) lub tylko względne, to jego
układ jest stały, a konwersja jest prosta. Z drugiej strony, jeśli skrypt
miesza oba rodzaje znaczników czasu, a następnie TERAZ odniesieniem do względnych znaczników czasu będzie
wzięte z aktualnej pory dnia w momencie czytania skryptu i układu skryptu
zostanie zamrożony zgodnie z tym odniesieniem. Oznacza to, że jeśli skrypt jest bezpośrednio
odtwarzane, rzeczywiste czasy będą odpowiadać bezwzględnym znacznikom czasu do kontrolera dźwięku
dokładność zegara, ale jeśli użytkownik w jakiś sposób zatrzyma odtwarzanie lub wyszukiwanie, wszystkie czasy będą
odpowiednio przesunięte.
napisy
Napisy JSON używane dohttp://www.ted.com/>.
TED nie podaje linków do podpisów, ale można je odgadnąć ze strony. ten
filet narzędzia/bookmarklets.html z drzewa źródłowego FFmpeg zawiera bookmarklet do udostępnienia
Im.
Ten demuxer akceptuje następującą opcję:
czas rozpoczęcia
Ustaw czas rozpoczęcia wykładu TED w milisekundach. Wartość domyślna to 15000 (15s). To jest
służy do synchronizacji podpisów z filmami do pobrania, ponieważ zawierają one 15s
wprowadzenie.
Przykład: przekonwertuj podpisy do formatu, który rozumie większość graczy:
ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt
MUXERY
Muxery to skonfigurowane elementy w FFmpeg, które umożliwiają zapisywanie strumieni multimedialnych do
konkretny typ pliku.
Podczas konfigurowania kompilacji FFmpeg wszystkie obsługiwane muxery są domyślnie włączone. ty
może wyświetlić listę wszystkich dostępnych muxerów za pomocą opcji konfiguracji "--list-muxers".
Możesz wyłączyć wszystkie muxery za pomocą opcji konfiguracji "--disable-muxers" i
selektywnie włączaj / wyłączaj pojedyncze muxery za pomocą opcji "--enable-muxer=MUXER" /
„--wyłącz-muxer=MUXER".
Opcja "-formats" narzędzi ff* wyświetli listę włączonych muxerów.
Poniżej znajduje się opis niektórych obecnie dostępnych muxerów.
aiffe
Muxer formatu plików wymiany dźwięku.
Opcje
Akceptuje następujące opcje:
write_id3v2
Włącz zapisywanie tagów ID3v2 po ustawieniu na 1. Wartość domyślna to 0 (wyłączone).
wersja_id3v2
Wybierz wersję ID3v2 do zapisu. Obecnie tylko wersja 3 i 4 (aka. ID3v2.3 i
Obsługiwane są ID3v2.4). Domyślnie jest to wersja 4.
Crc
Format testowania CRC (Cyclic Redundancy Check).
Ten muxer oblicza i drukuje CRC Adlera-32 wszystkich wejściowych ramek audio i wideo.
Domyślnie ramki audio są konwertowane na podpisane 16-bitowe ramki audio i wideo na surowe
wideo przed obliczeniem CRC.
Wyjście muxera składa się z jednej linii o postaci: CRC=0xCRC, Gdzie CRC jest
liczba szesnastkowa dopełniona od 0 do 8 cyfr zawierających CRC dla wszystkich dekodowanych danych wejściowych
ramki.
Zobacz też ramkakr mukser.
Przykłady
Na przykład, aby obliczyć CRC danych wejściowych i zapisać je w pliku out.crc:
ffmpeg -i WEJŚCIE -f crc out.crc
Możesz wydrukować CRC na standardowe wyjście za pomocą polecenia:
ffmpeg -i WEJŚCIE -f crc -
Możesz wybrać format wyjściowy każdej klatki za pomocą ffmpeg określając dźwięk i
kodek i format wideo. Na przykład, aby obliczyć CRC wejściowego dźwięku przekonwertowanego na PCM
unsigned 8-bit i wejście wideo przekonwertowane na wideo MPEG-2, użyj polecenia:
ffmpeg -i WEJŚCIE -c:a pcm_u8 -c:v mpeg2video -f crc -
ramkakr
Format testowania CRC (Cyclic Redundancy Check) pakietów.
Ten muxer oblicza i drukuje CRC Adler-32 dla każdego pakietu audio i wideo. Za pomocą
domyślne ramki audio są konwertowane na podpisane 16-bitowe ramki audio i wideo na surowe
wideo przed obliczeniem CRC.
Wyjście muxera składa się z linii dla każdego pakietu audio i wideo w postaci:
, , , , , 0x
CRC to liczba szesnastkowa dopełniona od 0 do 8 cyfr, zawierająca CRC pakietu.
Przykłady
Na przykład, aby obliczyć CRC ramek audio i wideo w WEJŚCIE, przekonwertowany na surowy
pakiety audio i wideo i przechowuj je w pliku out.crc:
ffmpeg -i WEJŚCIE -f framecrc out.crc
Aby wydrukować informacje na standardowe wyjście, użyj polecenia:
ffmpeg -i WEJŚCIE -f framecrc -
Wraz z ffmpeg, możesz wybrać format wyjściowy, w którym są ramki audio i wideo
zakodowane przed obliczeniem CRC dla każdego pakietu przez określenie kodeka audio i wideo.
Na przykład, aby obliczyć CRC każdej zdekodowanej wejściowej ramki audio przekonwertowanej na PCM
8-bitowe bez znaku i dla każdej zdekodowanej wejściowej klatki wideo przekonwertowanej na wideo MPEG-2, użyj
polecenie:
ffmpeg -i WEJŚCIE -c:a pcm_u8 -c:v mpeg2video -f framecrc -
Zobacz też Crc mukser.
ramamd5
Format testowania MD5 na pakiet.
Ten muxer oblicza i drukuje skrót MD5 dla każdego pakietu audio i wideo. Domyślnie
ramki audio są konwertowane do podpisanych 16-bitowych ramek surowego audio i wideo do surowego wideo przed
obliczanie skrótu.
Wyjście muxera składa się z linii dla każdego pakietu audio i wideo w postaci:
, , , , ,
MD5 jest liczbą szesnastkową reprezentującą obliczony skrót MD5 dla pakietu.
Przykłady
Na przykład, aby obliczyć MD5 ramek audio i wideo w WEJŚCIE, przekonwertowany na surowy
pakiety audio i wideo i przechowuj je w pliku out.md5:
ffmpeg -i WEJŚCIE -f framemd5 out.md5
Aby wydrukować informacje na standardowe wyjście, użyj polecenia:
ffmpeg -i WEJŚCIE -f framemd5 -
Zobacz też md5 mukser.
gif
Animowany muxer GIF.
Akceptuje następujące opcje:
pętla
Ustaw liczbę zapętleń danych wyjściowych. Użyj „-1” dla braku pętli, 0 dla pętli
na czas nieokreślony (domyślnie).
końcowe_opóźnienie
Wymuś opóźnienie (wyrażone w centysekundach) po ostatniej klatce. Każda ramka kończy się na
opóźnienie do następnej klatki. Wartość domyślna to „-1”, co jest specjalną wartością do przekazania
muxer, aby ponownie wykorzystać poprzednie opóźnienie. W przypadku pętli możesz chcieć dostosować
tę wartość, aby na przykład oznaczyć pauzę.
Na przykład, aby zakodować gif zapętlony 10 razy, z 5-sekundowym opóźnieniem między pętlami:
ffmpeg -i INPUT -loop 10 -final_delay 500 out.gif
Uwaga 1: jeśli chcesz wyodrębnić klatki w osobnych plikach GIF, musisz wymusić
image2 mukser:
ffmpeg -i WEJŚCIE -c:v gif -f image2 "out%d.gif"
Uwaga 2: format GIF ma bardzo małą podstawę czasową: opóźnienie między dwiema klatkami nie może być
mniejsza niż jedna centysekunda.
hls
Muxer Apple HTTP Live Streaming, który segmentuje MPEG-TS zgodnie z HTTP Live Streaming
(HLS) specyfikacja.
Tworzy plik listy odtwarzania i jeden lub więcej plików segmentowych. Nazwa pliku wyjściowego określa
nazwa pliku listy odtwarzania.
Domyślnie muxer tworzy plik dla każdego wyprodukowanego segmentu. Te pliki mają to samo
nazwę jako listę odtwarzania, po której następuje kolejny numer i rozszerzenie .ts.
Na przykład, aby przekonwertować plik wejściowy za pomocą ffmpeg:
ffmpeg -i in.nut out.m3u8
Ten przykład wygeneruje listę odtwarzania, out.m3u8i pliki segmentowe: out0.ts, out1.ts,
out2.ts, itp.
Zobacz też segment muxer, który zapewnia bardziej ogólną i elastyczną implementację
segmenter i może być używany do wykonywania segmentacji HLS.
Opcje
Ten muxer obsługuje następujące opcje:
hls_time sekund
Ustaw długość segmentu w sekundach. Wartość domyślna to 2.
rozmiar_listy_hls rozmiar
Ustaw maksymalną liczbę wpisów listy odtwarzania. Jeśli ustawione na 0, plik listy będzie zawierał wszystkie
segmenty. Wartość domyślna to 5.
hls_ts_opcje lista_opcji
Ustaw opcje formatu wyjściowego za pomocą rozdzielonej :- listy parametrów klucz=wartość. Wartości
zawierające ":" znaki specjalne muszą być zmienione.
hls_wrap owinąć
Ustaw liczbę, po której numer segmentu nazwy pliku (liczba określona w każdym z nich)
plik segmentowy) zawija. Jeśli jest ustawiony na 0, numer nigdy nie zostanie opakowany. Wartość domyślna to 0.
Ta opcja jest przydatna, aby uniknąć zapełniania dysku wieloma plikami segmentacyjnymi i ograniczeniami
maksymalna liczba plików segmentowych zapisanych na dysku na owinąć.
numer_początkowy numer
Rozpocznij numer porządkowy listy odtwarzania od numer. Wartość domyślna to 0.
hls_allow_cache zezwól
Jawnie ustaw, czy klient MOŻE \fJest0(1) lub NIE MOŻE \fJest0(0) nośniki pamięci podręcznej
segmentów.
hls_base_url bazowy adres URL
Dodać bazowy adres URL do każdego wpisu na liście odtwarzania. Przydatne do generowania list odtwarzania za pomocą
ścieżki bezwzględne.
Pamiętaj, że numer sekwencyjny listy odtwarzania musi być unikalny dla każdego segmentu i nie jest
należy pomylić z numerem sekwencyjnym nazwy pliku segmentu, który może być cykliczny, dla
przykład, jeśli owinąć opcja jest określona.
hls_segment_nazwa_pliku filename
Ustaw nazwę pliku segmentu. Chyba że ustawiono pojedynczy_plik hls_flags filename jest używany jako
format ciągu z numerem segmentu:
ffmpeg in.nut -hls_segment_filename 'plik%03d.ts' out.m3u8
Ten przykład wygeneruje listę odtwarzania, out.m3u8i pliki segmentowe: plik000.ts,
plik001.ts, plik002.ts, itp.
hls_key_info_file klucz_informacyjny_plik
Skorzystaj z informacji zawartych w klucz_informacyjny_plik do szyfrowania segmentów. Pierwsza linia
klucz_informacyjny_plik określa klucz URI zapisany do listy odtwarzania. Kluczowy adres URL służy do
uzyskać dostęp do klucza szyfrowania podczas odtwarzania. Drugi wiersz określa ścieżkę do
plik klucza używany do uzyskania klucza podczas procesu szyfrowania. Plik klucza jest odczytywany jako
pojedyncza spakowana tablica 16 oktetów w formacie binarnym. Opcjonalny trzeci wiersz określa:
wektor inicjujący (IV) jako ciąg szesnastkowy, który ma być użyty zamiast
numer sekwencyjny segmentu (domyślny) do szyfrowania. Zmiany w klucz_informacyjny_plik skutkuje
w szyfrowaniu segmentowym nowym kluczem/IV i wpisem na liście odtwarzania dla nowego klucza
URI/IV.
Format pliku z kluczowymi informacjami:
(opcjonalny)
Przykładowe kluczowe identyfikatory URI:
http://server/file.key
/ścieżka/do/pliku.klucz
plik.klucz
Przykładowe ścieżki do plików kluczy:
plik.klucz
/ścieżka/do/pliku.klucz
Przykład IV:
0123456789ABCDEF0123456789ABCDEF
Przykładowy plik z kluczowymi informacjami:
http://server/file.key
/ścieżka/do/pliku.klucz
0123456789ABCDEF0123456789ABCDEF
Przykładowy skrypt powłoki:
#!/ Bin / sh
BASE_URL=${1:-'.'}
openssl rand 16 > plik.klucz
echo $BASE_URL/file.key > file.keyinfo
echo plik.key >> plik.keyinfo
echo $(openssl rand -hex 16) >> plik.keyinfo
ffmpeg -f lavfi -re -i testrc -c:v h264 -hls_flags usuń_segmenty \
-hls_key_info_file plik.keyinfo out.m3u8
hls_flagi pojedynczy plik
Jeśli ta flaga jest ustawiona, muxer będzie przechowywać wszystkie segmenty w jednym pliku MPEG-TS i
użyje zakresów bajtów na liście odtwarzania. Listy odtwarzania HLS wygenerowane w ten sposób będą miały
numer wersji 4. Na przykład:
ffmpeg -i in.nut -hls_flags pojedynczy_plik out.m3u8
Wyprodukuje playlistę, out.m3u8i pojedynczy plik segmentowy, out.ts.
hls_flagi usuń_segmenty
Pliki segmentowe usunięte z listy odtwarzania są usuwane po czasie równym
czas trwania segmentu plus czas trwania playlisty.
ico
Muxer plików ICO.
Format pliku ikon firmy Microsoft (ICO) ma pewne ścisłe ograniczenia, na które należy zwrócić uwagę:
· Rozmiar nie może przekraczać 256 pikseli w żadnym wymiarze
· Można przechowywać tylko obrazy BMP i PNG
· Jeśli używany jest obraz BMP, musi to być jeden z następujących formatów pikseli:
Głębia bitowa BMP Format pikseli FFmpeg
1-bitowy pal8
4-bitowy pal8
8-bitowy pal8
16-bitowy rgb555le
24-bitowy bgr24
32-bitowy bgra
· Jeśli używany jest obraz BMP, należy użyć nagłówka BITMAPINFOHEADER DIB
· Jeśli używany jest obraz PNG, musi być w formacie pikseli rgba
image2
Muxer plików graficznych.
Muxer plików obrazów zapisuje klatki wideo do plików obrazów.
Nazwy plików wyjściowych są określone przez wzorzec, którego można użyć do sekwencyjnego tworzenia
ponumerowane serie plików. Wzorzec może zawierać ciąg „%d” lub „%0Nd", ten ciąg
określa pozycję znaków reprezentujących numerację w nazwach plików. Jeśli
formularz "% 0Nd", ciąg reprezentujący liczbę w każdej nazwie pliku jest dodawany zerem do N
cyfry. Znak literału „%” można określić we wzorcu za pomocą ciągu „%%”.
Jeśli wzór zawiera „%d” lub „%0Nd", pierwsza nazwa pliku z określonej listy plików będzie
zawierać cyfrę 1, wszystkie kolejne cyfry będą następujące po sobie.
Wzór może zawierać przyrostek, który służy do automatycznego określania formatu
pliki graficzne do napisania.
Na przykład wzorzec „img-%03d.bmp” określi sekwencję nazw plików formularza
img-001.bmp, img-002.bmp..., img-010.bmpitp. Wzorzec "img%%-%d.jpg" loading="leniwy" określi
sekwencja nazw plików formularza img%-1.jpg, img%-2.jpg..., img%-10.jpg, itp.
Przykłady
Poniższy przykład pokazuje, jak używać ffmpeg do tworzenia sekwencji plików
img-001.jpeg, img-002.jpeg, ..., robienie jednego obrazu co sekundę z wejściowego wideo:
ffmpeg -i in.avi -vsync 1 -r 1 -f image2 'img-%03d.jpeg'
Zauważ, że z ffmpeg, jeśli format nie jest określony opcją "-f" i wyjściem
nazwa pliku określa format pliku obrazu, muxer image2 jest wybierany automatycznie, więc
poprzednie polecenie można zapisać jako:
ffmpeg -i in.avi -vsync 1 -r 1 'img-%03d.jpeg'
Zauważ też, że wzór nie musi koniecznie zawierać „%d” lub „%0Nd", na przykład do
utwórz pojedynczy plik obrazu img.jpeg z wejściowego wideo możesz użyć polecenia:
ffmpeg -i in.avi -f obraz2 -frames:v 1 img.jpeg
strftime. opcja pozwala rozszerzyć nazwę pliku o informacje o dacie i godzinie.
Sprawdź dokumentację funkcji "strftime()" dla składni.
Na przykład, aby wygenerować pliki obrazów z wzorca "strftime()" "%Y-%m-%d_%H-%M-%S",
następujący ffmpeg można użyć polecenia:
ffmpeg -f v4l2 -r 1 -i /dev/video0 -f image2 -strftime 1 "%Y-%m-%d_%H-%M-%S.jpg"
Opcje
numer_początkowy
Rozpocznij sekwencję od podanej liczby. Wartość domyślna to 0.
aktualizacja
Jeśli jest ustawiona na 1, nazwa pliku będzie zawsze interpretowana jako tylko nazwa pliku, a nie jako
wzór, a odpowiedni plik będzie stale nadpisywany nowymi obrazami.
Wartość domyślna to 0.
strftime.
Jeśli jest ustawiona na 1, rozwiń nazwę pliku o datę i godzinę z „strftime()”.
Wartość domyślna to 0.
Muxer obrazu obsługuje format pliku obrazu .YUV. Ten format jest wyjątkowy, ponieważ
każda ramka obrazu składa się z trzech plików, dla każdego z komponentów YUV420P. Aby przeczytać lub
napisz ten format pliku obrazu, określ nazwę pliku '.Y'. Muxer będzie
automatycznie otwieraj pliki '.U' i '.V' zgodnie z wymaganiami.
Matroska
Muxer kontenerowy Matroska.
Ten muxer implementuje specyfikacje kontenera matroska i webm.
Metadane
Rozpoznawane ustawienia metadanych w tym muxerze to:
tytuł
Ustaw nazwę tytułu podaną dla pojedynczego utworu.
język
Określ język ścieżki w formularzu Języki Matroska.
Językiem może być trzyliterowa forma bibliograficzna ISO-3-639 (ISO 2-639/B)
(np. „fre” dla francuskiego) lub kod języka zmieszany z kodem kraju dla specjalności
w językach (np. „fre-ca” dla kanadyjskiego francuskiego).
tryb_stereo
Ustaw stereofoniczny układ wideo 3D dwóch widoków na jednej ścieżce wideo.
Rozpoznawane są następujące wartości:
mono
wideo nie jest stereo
Lewo prawo
Oba widoki są ułożone obok siebie, widok dla lewego oka znajduje się po lewej stronie
dół_góra
Oba widoki są ułożone w orientacji góra-dół, widok dla lewego oka jest u dołu
Góra dół
Oba widoki są ułożone w orientacji góra-dół, widok lewego oka jest u góry
szachownica_rl
Każdy widok jest ułożony w przeplatany wzór szachownicy, widok dla lewego oka jest
drugim
szachownica_lr
Każdy widok jest ułożony w przeplatany wzór szachownicy, widok dla prawego oka jest
drugim
row_interleaved_rl
Każdy widok składa się z przeplatania opartego na wierszach, widok dla prawego oka to pierwszy wiersz
row_interleaved_lr
Każdy widok składa się z przeplatania opartego na wierszach, widok dla lewego oka jest pierwszym rzędem
col_interleaved_rl
Oba widoki są ułożone z przeplotem opartym na kolumnach, widok dla prawego oka jest
pierwsza kolumna
col_interleaved_lr
Oba widoki są ułożone z przeplotem opartym na kolumnach, widok dla lewego oka jest
pierwsza kolumna
anaglif_cyan_red
Wszystkie klatki są w formacie anaglifowym, które można oglądać przez filtry czerwono-cyjan
prawo lewo
Oba widoki są ustawione obok siebie, widok dla prawego oka znajduje się po lewej stronie
anaglif_zielony_magenta
Wszystkie klatki są w formacie anaglifowym, które można oglądać przez filtry zielono-magenta
blok_lr
Oczy splecione w jeden blok, widok lewego oka jest pierwszy
blok_rl
Oczy splecione w jeden blok, widok prawego oka jest pierwszy
Na przykład klip 3D WebM można utworzyć za pomocą następującego wiersza poleceń:
ffmpeg -i sample_left_right_clip.mpg -an -c:v libvpx -metadata tryb_stereo=left_right -y stereo_clip.webm
Opcje
Ten muxer obsługuje następujące opcje:
Reserve_index_space
Domyślnie ten muxer zapisuje indeks wyszukiwania (nazywany cue w terminologii Matroska) at
koniec pliku, ponieważ nie może z góry wiedzieć, ile miejsca zostawić na
indeks na początku pliku. Jednak w niektórych przypadkach użycia — np. przesyłanie strumieniowe
gdzie szukanie jest możliwe, ale powolne - warto umieścić indeks na początku
pliku.
Jeśli ta opcja jest ustawiona na wartość niezerową, muxer zarezerwuje daną kwotę
spację w nagłówku pliku, a następnie spróbuj zapisać tam cue, gdy muxing
kończy. Jeśli dostępna przestrzeń nie wystarczy, muxing nie powiedzie się. Bezpieczny rozmiar dla
większość przypadków użycia powinna wynosić około 50 KB na godzinę wideo.
Zauważ, że cue są zapisywane tylko wtedy, gdy wyjście można przeszukiwać, a ta opcja nie będzie miała
efekt, jeśli tak nie jest.
md5
Format testowy MD5.
Ten muxer oblicza i drukuje skrót MD5 wszystkich wejściowych ramek audio i wideo. Za pomocą
domyślne ramki audio są konwertowane na podpisane 16-bitowe ramki audio i wideo na surowe
wideo przed obliczeniem skrótu.
Wyjście muxera składa się z jednej linii o postaci: MD5=MD5, Gdzie MD5 jest
liczba szesnastkowa reprezentująca obliczony skrót MD5.
Na przykład, aby obliczyć skrót MD5 wejścia przekonwertowanego na surowe audio i wideo, oraz
przechowuj go w pliku out.md5:
ffmpeg -i WEJŚCIE -f md5 out.md5
Możesz wydrukować MD5 na standardowe wyjście za pomocą polecenia:
ffmpeg -i WEJŚCIE -f md5 -
Zobacz też ramamd5 mukser.
ruch, mp4, ismv
Muxer MOV/MP4/ISMV (Smooth Streaming).
Muxer mov/mp4/ismv obsługuje fragmentację. Zwykle plik MOV/MP4 zawiera wszystkie
metadane o wszystkich pakietach przechowywanych w jednym miejscu (zapisane na końcu pliku, nie mogą)
zostać przeniesiony na początek dla lepszego odtwarzania przez dodanie szybki start do flagi ruchulub za pomocą
dotychczasowy qt-szybki start narzędzie). Pofragmentowany plik składa się z kilku fragmentów, gdzie pakiety
a metadane dotyczące tych pakietów są przechowywane razem. Pisanie pofragmentowanego pliku ma
Zaletą jest to, że plik można dekodować, nawet jeśli zapis zostanie przerwany (podczas gdy normalny
MOV/MP4 jest niekodowany, jeśli nie jest prawidłowo ukończony) i wymaga mniej pamięci, gdy
pisanie bardzo długich plików (ponieważ pisanie normalnych plików MOV/MP4 przechowuje informacje o każdym z nich)
pakiet w pamięci aż do zamknięcia pliku). Minusem jest to, że jest mniej kompatybilny
z innymi aplikacjami.
Opcje
Fragmentację można włączyć, ustawiając jedną z opcji AVOptions, które definiują sposób wycinania pliku
na fragmenty:
-moov_rozmiar bajtów
Rezerwuje miejsce na atom moov na początku pliku zamiast umieszczania znaku
atom moov na końcu. Jeśli zarezerwowana przestrzeń jest niewystarczająca, muxing nie powiedzie się.
-movflagi frag_klatka kluczowa
Rozpocznij nowy fragment w każdej klatce kluczowej wideo.
-frag_czas trwania czas trwania
Twórz fragmenty, które są czas trwania mikrosekundy.
-frag_rozmiar rozmiar
Twórz fragmenty zawierające do rozmiar bajty danych ładunku.
-movflagi frag_niestandardowy
Pozwól dzwoniącemu ręcznie wybrać, kiedy wyciąć fragmenty, dzwoniąc
"av_write_frame(ctx, NULL)", aby napisać fragment z dotychczas zapisanych pakietów. (Ten
jest użyteczny tylko z innymi aplikacjami integrującymi libavformat, nie z ffmpeg.)
-min_frag_czas trwania czas trwania
Nie twórz fragmentów krótszych niż czas trwania mikrosekundy.
Jeśli określono więcej niż jeden warunek, fragmenty są wycinane, gdy jeden z określonych
warunki są spełnione. Wyjątkiem od tego jest „-min_frag_duration”, który musi być
spełnione, aby każdy z pozostałych warunków miał zastosowanie.
Dodatkowo sposób zapisu pliku wyjściowego można dostosować za pomocą kilku innych
opcje:
-movflagi pusty_moov
Napisz początkowy atom moov bezpośrednio na początku pliku, bez opisywania żadnego
próbki w nim. Ogólnie rzecz biorąc, para mdat/moov jest zapisywana na początku pliku, jako a
normalny plik MOV/MP4, zawierający tylko krótki fragment pliku. Z tą opcją
ustawiony, nie ma początkowego atomu mdat, a atom moov opisuje tylko ścieżki, ale
ma zerowy czas trwania.
Ta opcja jest niejawnie ustawiana podczas zapisywania plików ismv (Smooth Streaming).
-movflagi oddzielny_moof
Napisz oddzielny atom moof (fragment filmu) dla każdego utworu. Zwykle pakiety dla wszystkich
utwory są napisane w atomie moof (co jest nieco bardziej wydajne), ale z tym
zestaw opcji, muxer zapisuje jedną parę moof/mdat dla każdej ścieżki, co ułatwia
oddzielne tory.
Ta opcja jest niejawnie ustawiana podczas zapisywania plików ismv (Smooth Streaming).
-movflagi szybki start
Uruchom drugi przebieg, przenosząc indeks (atom moov) na początek pliku. Ten
operacja może chwilę potrwać i nie zadziała w różnych sytuacjach, takich jak fragmentacja
wyjście, dlatego nie jest domyślnie włączone.
-movflagi rtphint
Dodaj ścieżki podpowiedzi RTP do pliku wyjściowego.
-movflagi wyłącz_chpl
Wyłącz znaczniki rozdziałów Nero (atom chpl). Zwykle zarówno rozdziały Nero, jak i
Ścieżki rozdziałów QuickTime są zapisywane w pliku. Po ustawieniu tej opcji tylko
Zostanie napisana ścieżka rozdziału QuickTime. Rozdziały Nero mogą powodować awarie, gdy
plik jest ponownie przetwarzany za pomocą określonych programów do tagowania, takich jak mp3Tag 2.61a i iTunes 11.3,
najprawdopodobniej dotyczy to również innych wersji.
-movflagi pomiń_tfhd_offset
Nie zapisuj żadnych bezwzględnych wartości base_data_offset w atomach tfhd. Pozwala to uniknąć wiązania fragmentów
do bezwzględnych pozycji bajtów w pliku/strumieniach.
-movflagi default_base_moof
Podobnie jak w przypadku omit_tfhd_offset, ta flaga pozwala uniknąć pisania wartości bezwzględnej
pole base_data_offset w atomach tfhd, ale robi to za pomocą nowego default-base-is-
zamiast flagi moof. Ta flaga jest nowa od 14496-12:2012. To może sprawić, że fragmenty
łatwiejsza do parsowania w pewnych okolicznościach (unikanie bazowania na lokalizacji fragmentu ścieżki)
obliczenia na niejawnym końcu poprzedniego fragmentu ścieżki).
Przykład
Dzięki temu zawartość płynnego przesyłania strumieniowego może być przesyłana w czasie rzeczywistym do punktu publikacji w usługach IIS
muxer. Przykład:
ffmpeg -re < > -movflags isml+frag_keyframe -f ismv http://server/publishingpoint.isml/Streams(Koder1)
Słyszalny AAX
Pliki Audible AAX są zaszyfrowanymi plikami M4B i można je odszyfrować, określając 4
tajny klucz aktywacji bajtów.
ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c:a kopia wyjście.mp4
mp3
Muxer MP3 zapisuje nieprzetworzony strumień MP3 z następującymi opcjonalnymi funkcjami:
· Nagłówek metadanych ID3v2 na początku (domyślnie włączony). Wersje 2.3 i 2.4
są obsługiwane, opcja prywatna "id3v2_version" kontroluje, która z nich jest używana (3 lub 4).
Ustawienie „id3v2_version” na 0 całkowicie wyłącza nagłówek ID3v2.
Muxer obsługuje zapisywanie załączonych obrazów (ramek APIC) do nagłówka ID3v2. ten
obrazy dostarczane są do muxera w postaci strumienia wideo z jednego pakietu.
Może istnieć dowolna liczba tych strumieni, każdy będzie odpowiadał pojedynczej ramce APIC.
Tagi metadanych strumienia tytuł i komentarz mapa do APIC opis i obraz rodzaj
odpowiednio. Widziećhttp://id3.org/id3v2.4.0-frames> dla dozwolonych typów obrazów.
Pamiętaj, że ramki APIC muszą być napisane na początku, więc muxer będzie buforował
ramki audio, aż uzyska wszystkie obrazy. Dlatego zaleca się podanie:
zdjęcia tak szybko, jak to możliwe, aby uniknąć nadmiernego buforowania.
· Ramka Xing/LAME zaraz po nagłówku ID3v2 (jeśli jest obecny). Jest domyślnie włączony,
ale zostanie zapisany tylko wtedy, gdy wynik jest możliwy do przeszukania. Opcja prywatna „write_xing”
można go użyć do wyłączenia. Ramka zawiera różne informacje, które mogą być przydatne
do dekodera, np. czas trwania dźwięku lub opóźnienie kodera.
· Starszy tag ID3v1 na końcu pliku (domyślnie wyłączony). Może być włączony
z opcją prywatną "write_id3v1", ale ponieważ jej możliwości są bardzo ograniczone, its
użycie nie jest zalecane.
Przykłady:
Napisz mp3 z nagłówkiem ID3v2.3 i stopką ID3v1:
ffmpeg -i WEJŚCIE -id3v2_wersja 3 -write_id3v1 1 out.mp3
Aby dołączyć obraz do pliku mp3, wybierz zarówno strumień audio, jak i obraz za pomocą
"mapa":
ffmpeg -i wejście.mp3 -i cover.png -c kopia -mapa 0 -mapa 1
-metadata:s:v title="Okładka albumu" -metadata:s:v comment="Okładka (przód)" out.mp3
Napisz „czysty” plik MP3 bez żadnych dodatkowych funkcji:
ffmpeg -i input.wav -write_xing 0 -id3v2_version 0 out.mp3
mpegty
Muxer strumienia transportowego MPEG.
Ten muxer implementuje ISO 13818-1 i część ETSI EN 300 468.
Rozpoznane ustawienia metadanych w muxerze mpegts to „usługa_dostawcy” i
"Nazwa serwisu". Jeśli nie są ustawione, domyślną wartością „dostawca_usług” jest „FFmpeg”, a
domyślną wartością „nazwa_usługi” jest „Usługa01”.
Opcje
Opcje muxera to:
-mpegts_oryginalny_id_sieci numer
Ustaw oryginalny_identyfikator_sieci (domyślnie 0x0001). To jest unikalny identyfikator sieci
w DVB. Jego głównym zastosowaniem jest unikalna identyfikacja usługi na ścieżce
Original_Network_ID, Transport_Stream_ID.
-mpegts_transport_stream_id numer
Ustaw transport_stream_id (domyślnie 0x0001). Identyfikuje transponder w DVB.
-mpegts_service_id numer
Ustaw service_id (domyślnie 0x0001), znany również jako program w DVB.
-mpegts_typ_usługi numer
Ustaw program service_type (domyślny telewizja cyfrowa), patrz poniżej lista wstępnie zdefiniowanych
wartości.
-mpegts_pmt_start_pid numer
Ustaw pierwszy PID dla PMT (domyślnie 0x1000, max 0x1f00).
-mpegts_start_pid numer
Ustaw pierwszy PID dla pakietów danych (domyślnie 0x0100, max 0x0f00).
-mpegts_m2ts_mode numer
Włącz tryb m2ts, jeśli jest ustawiony na 1. Wartość domyślna to -1, która wyłącza tryb m2ts.
-multipleks numer
Ustaw stałą szybkość transmisji (domyślny VBR).
-pcr_okres numer
Zastępuje domyślny czas retransmisji PCR (domyślnie 20ms), ignorowany, jeśli zmienna
wybrano szybkość transmisji.
pat_okres numer
Maksymalny czas w sekundach pomiędzy tabelami PAT/PMT.
okres_sdt numer
Maksymalny czas w sekundach między tabelami SDT.
-pes_rozmiar_ładuneku numer
Ustaw minimalny ładunek pakietu PES w bajtach.
-mpegts_flagi Flagi
Ustaw flagi (patrz poniżej).
-mpegts_copyts numer
Zachowaj oryginalne znaczniki czasu, jeśli wartość jest ustawiona na 1. Wartość domyślna to -1, co powoduje
w przesuwaniu znaczników czasu, tak aby zaczynały się od 0.
-wersja_tabeli numer
Ustaw wersję PAT, PMT i SDT (domyślnie 0, prawidłowe wartości to od 0 do 31 włącznie).
Ta opcja umożliwia aktualizację struktury strumienia, dzięki czemu standardowy konsument może wykryć
zmiana. Aby to zrobić, ponownie otwórz wyjście AVFormatContext (w przypadku użycia API) lub uruchom ponownie
instancja ffmpeg, cyklicznie zmieniająca wartość table_version:
ffmpeg -i source1.ts -codec copy -f mpegts -tablesversion 0 udp://1.1.1.1:1111
ffmpeg -i source2.ts -codec copy -f mpegts -tablesversion 1 udp://1.1.1.1:1111
...
ffmpeg -i source3.ts -codec copy -f mpegts -tablesversion 31 udp://1.1.1.1:1111
ffmpeg -i source1.ts -codec copy -f mpegts -tablesversion 0 udp://1.1.1.1:1111
ffmpeg -i source2.ts -codec copy -f mpegts -tablesversion 1 udp://1.1.1.1:1111
...
Opcja mpegts_service_type akceptuje następujące wartości:
wartość_szesnastkowa
Dowolna wartość szesnastkowa z zakresu od 0x01 do 0xff zgodnie z definicją w ETSI 300 468.
telewizja cyfrowa
Usługa telewizji cyfrowej.
Radio cyfrowe
Usługa radia cyfrowego.
teletekst
Usługa teletekstu.
Advanced_codec_digital_radio
Zaawansowana usługa radia cyfrowego z kodekami.
mpeg2_cyfrowy_hdtv
Usługa cyfrowej telewizji HDTV MPEG2.
Advanced_codec_digital_sdtv
Zaawansowana usługa cyfrowego kodeka SDTV.
Advanced_codec_digital_hdtv
Zaawansowana usługa cyfrowego kodeka HDTV.
Opcja mpegts_flags może przyjąć zestaw takich flag:
ponownie wyślij nagłówki
Ponownie wyślij PAT/PMT przed zapisaniem następnego pakietu.
łac
Użyj pakietyzacji LATM dla AAC.
pat_pmt_at_frames
Ponownie wyemituj PAT i PMT przy każdej klatce wideo.
Przykład
ffmpeg -i plik.mpg -c kopia \
-mpegts_oryginalny_id_sieci 0x1122 \
-mpegts_transport_stream_id 0x3344 \
-mpegts_service_id 0x5566 \
-mpegts_pmt_start_pid 0x1500 \
-mpegts_start_pid 0x150 \
-metadata service_provider="Niektórzy dostawcy" \
-metadata service_name="Niektóre kanały" \
-y out.ts
mxf, mxf_d10
Muxer MXF.
Opcje
Opcje muxera to:
komentarze_użytkownika sklepu bool
Określ, czy komentarze użytkowników powinny być przechowywane, jeśli są dostępne, czy nigdy. IRT D-10 nie pozwala
komentarze użytkowników. Domyślnie jest więc pisanie ich dla mxf, ale nie dla mxf_d10
zero
Muxer zerowy.
Ten muxer nie generuje żadnego pliku wyjściowego, jest przydatny głównie do testowania lub
celów porównawczych.
Na przykład, aby testować dekodowanie za pomocą ffmpeg możesz użyć polecenia:
ffmpeg -benchmark -i WEJŚCIE -f null out.null
Zauważ, że powyższe polecenie nie odczytuje ani nie zapisuje out.null plik, ale określając
plik wyjściowy jest wymagany przez ffmpeg składnia.
Alternatywnie możesz napisać polecenie jako:
ffmpeg -benchmark -i WEJŚCIE -f null -
orzech
-punkty synchronizacji Flagi
Zmień użycie punktu synchronizacji w nut:
domyślnym posługiwać się dotychczasowy normalna niskie koszty ogólne poszukuje AIDS.
Żaden do nie posługiwać się dotychczasowy punkty synchronizacji at erta i efekt końcowy przerosły oczekiwania klienta. redukcja dotychczasowy nad głową ale zrobienie dotychczasowy strumień
nie do przeszukania;
Korzystanie z tej opcji nie jest zalecane, ponieważ powstałe pliki są bardzo zniszczone
wrażliwe i poszukiwanie nie jest możliwe. Również ogólnie koszty ogólne z
punkty synchronizacji jest znikome. Uwaga, -C 0 może być użyte do wyłączenia
wszystkie rosnące tabele danych, pozwalające na miksowanie niekończących się strumieni z ograniczoną pamięcią
i bez tych wad.
znacznik czasu rozciągać się dotychczasowy punkt synchronizacji w a zegar ścienny pole.
Żaden i znacznik czasu flagi są eksperymentalne.
-zapisz indeks bool
Napisz indeks na końcu, domyślnie jest to pisanie indeksu.
ffmpeg -i INPUT -f_strict eksperymentalne -punkty synchronizacji brak - | edytor
ogg
Muxer do pojemników Ogg.
-czas_strony czas trwania
Preferowany czas trwania strony w mikrosekundach. Muxer spróbuje utworzyć strony, które
są w przybliżeniu czas trwania mikrosekundy. Pozwala to użytkownikowi na kompromis
między poszukiwaniem ziarnistości a obciążeniem pojemnika. Wartość domyślna to 1 sekunda. Wartość 0
wypełni wszystkie segmenty, dzięki czemu strony będą tak duże, jak to możliwe. Wartość 1 testamentu
efektywnie wykorzystywać 1 pakiet na stronę w większości sytuacji, zapewniając małą szczegółowość wyszukiwania
kosztem dodatkowego kontenera narzutowego.
-przesunięcie_seryjne wartość
Numer seryjny, od którego należy ustawić numer seryjny strumienia. Ustawiam to na inne i
wystarczająco duże wartości zapewniają, że utworzone pliki ogg mogą być bezpiecznie połączone w łańcuch.
człon, segment_strumienia, segment
Podstawowy segmentator strumieni.
Ten muxer wysyła strumienie do kilku oddzielnych plików o prawie stałym czasie trwania. Wyjście
wzorzec nazwy pliku można ustawić w sposób podobny do image2, lub za pomocą „strftime”
szablon, jeśli strftime. opcja jest włączona.
„stream_segment” to wariant muxera używanego do zapisu w formatach wyjściowych przesyłania strumieniowego, tj.
które nie wymagają globalnych nagłówków i są zalecane do wyprowadzania np. do MPEG
segmenty strumienia transportowego. „segment” to krótszy alias dla „stream_segment”.
Każdy segment zaczyna się od klatki kluczowej wybranego strumienia referencyjnego, który jest ustawiony
przez strumień_odniesienia opcja.
Pamiętaj, że jeśli chcesz dokładnie podzielić plik wideo, musisz wprowadzić klawisz wejściowy
ramki odpowiadają dokładnym czasom podziału oczekiwanym przez segmenter lub segment
muxer rozpocznie nowy segment z klatką kluczową znalezioną następną po określonym starcie
czas.
Muxer segmentowy działa najlepiej z pojedynczym filmem o stałej szybkości klatek.
Opcjonalnie może wygenerować listę utworzonych segmentów, ustawiając opcję
lista_segmentów. Typ listy jest określony przez typ_listy_segmentów opcja. Wejście
nazwy plików na liście segmentów są domyślnie ustawione na nazwę bazową odpowiedniego
pliki segmentowe.
Zobacz też hls muxer, który zapewnia bardziej konkretną implementację dla HLS
segmentacja.
Opcje
Muxer segmentowy obsługuje następujące opcje:
strumień_odniesienia specyficzny
Ustaw strumień odniesienia, określony przez ciąg specyficzny. Jeśli specyficzny ustawiono
na „auto”, odniesienie jest wybierane automatycznie. W przeciwnym razie musi to być strumień
specyfikator (zobacz rozdział ``Specyfikatory strumienia'' w podręczniku ffmpeg), który określa
strumień odniesienia. Wartość domyślna to „auto”.
format_segmentu format
Zastąp wewnętrzny format kontenera, domyślnie odgaduje go nazwa pliku
rozbudowa.
opcje_formatu_segmentu lista_opcji
Ustaw opcje formatu wyjściowego za pomocą rozdzielonej :- listy parametrów klucz=wartość. Wartości
zawierające znak specjalny „:” musi zostać zmieniony.
lista_segmentów Nazwa
Wygeneruj również plik listy o nazwie Nazwa. Jeśli nie zostanie określony, plik listy nie zostanie wygenerowany.
flagi_listy_segmentu Flagi
Ustaw flagi wpływające na generowanie listy segmentów.
Obecnie obsługuje następujące flagi:
Pamięć podręczna
Zezwalaj na buforowanie (dotyczy tylko plików list M3U8).
relacja na żywo
Zezwalaj na przyjazne generowanie plików na żywo.
rozmiar_listy_segmentów rozmiar
Zaktualizuj plik listy tak, aby zawierał co najwyżej rozmiar segmenty. Jeśli 0 plik z listą
będzie zawierać wszystkie segmenty. Wartość domyślna to 0.
przedrostek_listy_segmentów prefiks
Przedstaw prefiks do każdego wpisu. Przydatne do generowania ścieżek bezwzględnych. Domyślnie bez prefiksu
jest stosowany.
typ_listy_segmentów rodzaj
Wybierz format aukcji.
Rozpoznawane są następujące wartości:
mieszkanie
Generuj płaską listę dla utworzonych segmentów, jeden segment na linię.
CSV, ext
Wygeneruj listę dla utworzonych segmentów, jeden segment na linię, każdy pasujący wiersz
format (wartości oddzielone przecinkami):
, ,
segment_nazwa pliku to nazwa pliku wyjściowego wygenerowanego przez muxer zgodnie z
do dostarczonego wzoru. Escape CSV (zgodnie z RFC4180) jest stosowany, jeśli
wymagane.
czas_początku segmentu i segment_końcowy_czas określ czas rozpoczęcia i zakończenia segmentu
wyrażona w sekundach.
Plik listy z sufiksem „.csv” lub „.ext” automatycznie wybierze ten format.
ext jest deprecjonowany na korzyść lub CSV.
ffconcat
Wygeneruj plik ffconcat dla utworzonych segmentów. Wynikowy plik można odczytać
za pomocą FFmpeg konkat demukser.
Plik listy z przyrostkiem „.ffcat” lub „.ffconcat” automatycznie wybierze ten format.
m3u8
Wygeneruj rozszerzony plik M3U8, wersja 3, zgodny z
<http://tools.ietf.org/id/draft-pantos-http-live-streaming>.
Plik listy z przyrostkiem „.m3u8” automatycznie wybierze ten format.
Jeśli nie określono, typ jest odgadywany z przyrostka nazwy pliku listy.
czas_segmentu czas
Ustaw czas trwania segmentu na czas, wartość musi być specyfikacją czasu trwania. Domyślna
wartość to „2”. Zobacz także segment_czasy opcja.
Pamiętaj, że podział może nie być dokładny, chyba że wymusisz klucz strumienia referencyjnego-
klatek w określonym czasie. Zapoznaj się ze wstępem i przykładami poniżej.
segment_o godzinie 1 | 0
Jeśli jest ustawiony na „1”, rozdzielaj w regularnych odstępach czasu, zaczynając od godziny 00:00. ten
czas wartość określona w czas_segmentu służy do ustawiania długości łupania
interwał.
Na przykład z czas_segmentu ustawiony na „900” umożliwia to tworzenie plików w
12:00, 12:15, 12:30 itd.
Wartość domyślna to „0”.
delta_czasu_segmentu delta
Określ czas dokładności podczas wybierania czasu rozpoczęcia dla segmentu, wyrażony jako
specyfikacja czasu trwania. Wartość domyślna to „0”.
Gdy określona jest delta, klatka kluczowa rozpocznie nowy segment, jeśli jej PTS spełnia wymagania
relacja:
PTS >= start_time - time_delta
Ta opcja jest przydatna podczas dzielenia treści wideo, które są zawsze dzielone w GOP
granice, w przypadku znalezienia klatki kluczowej tuż przed określonym czasem podziału.
W szczególności może być stosowany w połączeniu z ffmpeg opcja force_key_frames,
kluczowe czasy klatek określone przez force_key_frames może nie być dokładnie ustawiony z powodu
problemy z zaokrąglaniem, co skutkuje tym, że czas klatki kluczowej może zostać ustawiony tuż przed
określony czas. W przypadku filmów ze stałą liczbą klatek na sekundę wartość 1/(2*częstotliwość wyświetlania klatek) powinnam
zająć się najgorszym przypadkiem niezgodności między określonym czasem a czasem ustawionym przez
force_key_frames.
segment_czasy czasy
Określ listę punktów podziału. czasy zawiera listę oddzielonych przecinkami czasu trwania
specyfikacje w rosnącej kolejności. Zobacz także czas_segmentu opcja.
ramki_segmentowe Ramy
Określ listę numerów podzielonych klatek wideo. Ramy zawiera listę oddzielonych przecinkami
liczby całkowite, w porządku rosnącym.
Ta opcja określa, aby rozpocząć nowy segment za każdym razem, gdy ramka kluczowa strumienia odniesienia jest
znaleziono, a kolejny numer ramki (zaczynający się od 0) jest większy lub równy
następna wartość na liście.
zawijanie_segmentu ograniczenie
Owiń indeks segmentu, gdy osiągnie ograniczenie.
numer_początkowy_segmentu numer
Ustaw numer sekwencyjny pierwszego segmentu. Domyślnie 0.
strftime. 1 | 0
Użyj funkcji „strftime”, aby zdefiniować nazwy nowych segmentów do zapisania. Jeśli to
jest zaznaczone, nazwa segmentu wyjściowego musi zawierać szablon funkcji „strftime”.
Wartość domyślna to 0.
break_non_keyframes 1 | 0
Jeśli ta opcja jest włączona, zezwól na rozpoczęcie segmentów w klatkach innych niż klatki kluczowe. To poprawia
zachowanie niektórych graczy, gdy czas między klatkami kluczowymi jest niespójny, ale może sprawić
gorsze rzeczy na innych i mogą powodować pewne dziwactwa podczas poszukiwania. Domyślnie 0.
resetuj sygnatury czasowe 1 | 0
Zresetuj znaczniki czasu na początku każdego segmentu, aby każdy segment zaczynał się od
znaczniki czasu bliskie zeru. Ma to na celu ułatwienie odtwarzania wygenerowanych segmentów. Móc
nie działa z niektórymi kombinacjami muxerów/kodeków. Domyślnie jest ustawiony na 0.
początkowe_przesunięcie offset
Określ przesunięcie znacznika czasu, które ma być zastosowane do znaczników czasu pakietów wyjściowych. Argument musi…
być specyfikacją czasu trwania i domyślną wartością 0.
Przykłady
· Zremiksuj zawartość pliku w.mkv do listy segmentów out-000.nakrętka, out-001.nakrętkaItp.,
i zapisz listę wygenerowanych segmentów do out.lista:
ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.list out%03d.nut
· Wejście segmentu i ustawienie opcji formatu wyjściowego dla segmentów wyjściowych:
ffmpeg -i in.mkv -f segment -segment_time 10 -segment_format_options movflags=+faststart out%03d.mp4
· Segmentuj plik wejściowy zgodnie z punktami podziału określonymi przez segment_czasy
opcja:
ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 out%03d.nut
· Użyj ffmpeg force_key_frames opcja wymuszenia klatek kluczowych w danych wejściowych w
podana lokalizacja wraz z opcją segmentu delta_czasu_segmentu w celu uwzględnienia
możliwe zaokrąglenia stosowane podczas ustawiania czasów klatek kluczowych.
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
Aby wymusić klatki kluczowe w pliku wejściowym, wymagane jest transkodowanie.
· Segmentuj plik wejściowy, dzieląc plik wejściowy zgodnie z numerami klatek
sekwencja określona za pomocą ramki_segmentowe opcja:
ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_frames 100,200,300,500,800 03 XNUMX XNUMX XNUMX out%XNUMXd.nut
· Konwersja w.mkv do segmentów TS za pomocą koderów "libx264" i "libfaac":
ffmpeg -i in.mkv -map 0 -codec:v libx264 -codec:a libfaac -f segment -segment_list out.list out%03d.ts
· Segmentuj plik wejściowy i utwórz listę odtwarzania na żywo M3U8 (może być używany jako HLS na żywo)
źródło):
ffmpeg -re -i in.mkv -codec copy -map 0 -f segment -segment_list playlist.m3u8 \
-segment_list_flags +na żywo -segment_time 10 out%03d.mkv
płynne strumieniowanie
Muxer Smooth Streaming generuje zestaw plików (Manifest, porcje) nadających się do podania
z konwencjonalnym serwerem WWW.
rozmiar okna
Określ liczbę fragmentów przechowywanych w manifeście. Domyślnie 0 (zachowaj wszystko).
dodatkowy_rozmiar_okna
Określ liczbę fragmentów przechowywanych poza manifestem przed usunięciem z
dysk. Domyślnie 5.
lookahead_count
Określ liczbę fragmentów z wyprzedzeniem. Domyślnie 2.
min_frag_czas trwania
Określ minimalny czas trwania fragmentu (w mikrosekundach). Domyślnie 5000000.
usuń_przy_wyjściu
Określ, czy usunąć wszystkie fragmenty po zakończeniu. Domyślnie 0 (nie usuwaj).
trójnik
Tee muxer może być używany do zapisywania tych samych danych do kilku plików lub innego rodzaju
muxer. Może być używany na przykład do przesyłania strumieniowego wideo do sieci i zapisywania go w
dysk w tym samym czasie.
Różni się to od określenia kilku wyjść do ffmpeg narzędzie wiersza poleceń, ponieważ
dane audio i wideo zostaną zakodowane tylko raz za pomocą trójnika; kodowanie może być
bardzo kosztowny proces. Nie jest to przydatne podczas bezpośredniego korzystania z API libavformat, ponieważ
możliwe jest wtedy podawanie tych samych pakietów bezpośrednio do kilku muxerów.
Wyjścia podrzędne są określone w nazwie pliku podanej muxerowi, oddzielone znakiem '|'. Jeśli
dowolna nazwa niewolnika zawiera „|” separator, spacje wiodące lub końcowe lub dowolne
znak specjalny, musi zostać zmieniony (patrz dotychczasowy „Cytowanie i ucieczka” Sekcja in dotychczasowy
narzędzia ffmpeg(1) podręcznik).
Opcje Muxera można określić dla każdego urządzenia podrzędnego, dołączając je jako listę klucz=wartość
pary oddzielone znakiem „:” w nawiasach kwadratowych. Jeśli wartości opcji zawierają znak specjalny
znak lub separator ':', muszą być one zmienione; zauważ, że jest to drugi poziom
ucieczka.
Rozpoznawane są również następujące opcje specjalne:
f Podaj nazwę formatu. Przydatne, jeśli nie można go odgadnąć na podstawie przyrostka nazwy wyjściowej.
bsfs[/specyfikacja]
Określ listę filtrów strumienia bitów, które mają być zastosowane do określonego wyjścia.
Możliwe jest określenie, do których strumieni ma zastosowanie dany filtr bitstream, poprzez:
dołączenie specyfikatora strumienia do opcji oddzielonego znakiem „/”. specyfikacja musi być strumieniem
specyfikator (patrz utworzony strumień specyfikatorzy). Jeśli specyfikator strumienia nie jest określony,
filtry strumienia bitów zostaną zastosowane do wszystkich strumieni na wyjściu.
Można określić kilka filtrów strumienia bitów, oddzielonych ",".
wybierać
Wybierz strumienie, które mają być mapowane na wyjście podrzędne, określone przez strumień
specyficzny. Jeśli nie zostanie określony, domyślnie zostaną wybrane wszystkie strumienie wejściowe.
Przykłady
· Zakoduj coś, a następnie zarchiwizuj to w pliku WebM i przesyłaj strumieniowo jako MPEG-TS przez UDP
(strumienie muszą być wyraźnie zmapowane):
ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a
"archiwum-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
· Posługiwać się ffmpeg aby zakodować dane wejściowe i wysłać dane wyjściowe do trzech różnych miejsc docelowych.
Filtr strumienia bitów „dump_extra” służy do dodawania dodatkowych informacji do wszystkich
wyprowadzanie pakietów klatek kluczowych wideo zgodnie z wymaganiami formatu MPEG-TS. Wybierz opcję
jest stosowany do out.aac aby zawierał tylko pakiety audio.
ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac -strict eksperymentalny
-f koszulka "[bsfs/v=dump_extra]out.ts|[movflags=+faststart]out.mp4|[select=a]out.aac"
· Jak poniżej, ale jako wyjście audio wybierz tylko strumień „a:1”. Zauważ, że drugi poziom
należy wykonać ucieczki, ponieważ ":" to znak specjalny używany do oddzielania opcji.
ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac -strict eksperymentalny
-f koszulka "[bsfs/v=dump_extra]out.ts|[movflags=+faststart]out.mp4|[select=\'a:1\']out.aac"
Uwaga: niektóre kodeki mogą wymagać różnych opcji w zależności od formatu wyjściowego; auto-
wykrycie tego nie może działać z trójnikiem. Głównym przykładem jest globalny_nagłówek
flag.
webm_dash_manifest
Muxer manifestu WebM DASH.
Ten muxer implementuje specyfikację WebM DASH Manifest do generowania manifestu DASH
XML. Obsługuje również generowanie manifestów dla strumieni na żywo DASH.
Aby uzyskać więcej informacji, patrz:
· Specyfikacja WebM DASH:
<https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-dash-specification>
· Specyfikacja ISO DASH:
<http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip>
Opcje
Ten muxer obsługuje następujące opcje:
zestawy_adaptacyjne
Ta opcja ma następującą składnię: „id=x,streams=a,b,c id=y,streams=d,e” gdzie x
i y są unikalnymi identyfikatorami zestawów adaptacyjnych, a a, b, c, d i e są
indeksy odpowiednich strumieni audio i wideo. Dowolna ilość zestawów adaptacyjnych
można dodać za pomocą tej opcji.
relacja na żywo
Ustaw na 1, aby utworzyć manifest DASH transmisji na żywo. Domyślnie: 0.
fragment_początkowy_indeks
Indeks początkowy pierwszego fragmentu. To pójdzie w numer startowy atrybut
Szablon segmentu w manifeście. Domyślnie: 0.
chunk_duration_ms
Czas trwania każdego fragmentu w milisekundach. To pójdzie w czas trwania atrybut
Szablon segmentu w manifeście. Domyślnie: 1000.
utc_timing_url
Adres URL strony, która zwróci znacznik czasu UTC w formacie ISO. To pójdzie w
wartość atrybut Czas UTC w manifeście. Domyślnie: brak.
głębokość_przesunięcia_czasu_bufora_czasu
Najmniejszy czas (w sekundach) przesunięcia bufora, dla którego gwarantowana jest dowolna Reprezentacja
być dostępnym. To pójdzie w timeShiftBuffer Głębokość atrybut MPD
element. Domyślnie: 60.
minimum_aktualizacji_okresu
Minimalny okres aktualizacji (w sekundach) manifestu. To pójdzie w
minimalny okres aktualizacji atrybut MPD element. Domyślnie: 0.
Przykład
ffmpeg -f webm_dash_manifest -i wideo1.webm \
-f webm_dash_manifest -i wideo2.webm \
-f webm_dash_manifest -i audio1.webm \
-f webm_dash_manifest -i audio2.webm \
-mapa 0 -mapa 1 -mapa 2 -mapa 3 \
-c kopiuj \
-f webm_dash_manifest \
-adaptation_sets "id=0,strumienie=0,1 id=1,strumienie=2,3" \
manifest.xml
webm_chunk
Muxer fragmentów na żywo WebM.
Ten muxer zapisuje nagłówki i porcje WebM jako osobne pliki, które mogą być używane przez
klientów obsługujących transmisje WebM Live przez DASH.
Opcje
Ten muxer obsługuje następujące opcje:
fragment_początkowy_indeks
Indeks pierwszej porcji (domyślnie 0).
nagłówek
Nazwa pliku nagłówka, w którym zostaną zapisane dane inicjujące.
audio_chunk_duration
Czas trwania każdego fragmentu audio w milisekundach (domyślnie 5000).
Przykład
ffmpeg -f v4l2 -i /dev/video0 \
-f alsa -i hw:0 \
-mapa 0:0 \
-c:v libvpx-vp9 \
-s 640x360 -keyint_min 30 -g 30 \
-f fragment_webm \
-nagłówek webm_live_video_360.hdr \
-chunk_start_indeks 1 \
webm_live_video_360_%d.chk \
-mapa 1:0 \
-c: libvorbis \
-b: 128k \
-f fragment_webm \
-nagłówek webm_live_audio_128.hdr \
-chunk_start_indeks 1 \
-audio_chunk_duration 1000 \
webm_live_audio_128_%d.chk
METADATA
FFmpeg jest w stanie zrzucić metadane z plików multimedialnych do prostego tekstu podobnego do INI zakodowanego w UTF-8
plik, a następnie załaduj go z powrotem za pomocą muxera/demuxera metadanych.
Format pliku jest następujący:
1. Plik składa się z nagłówka i kilku tagów metadanych podzielonych na sekcje, z których każdy
na własnej linii.
2. Nagłówek to ;FFMETADANE ciąg, po którym następuje numer wersji (obecnie 1).
3. Tagi metadanych mają formę klucz=wartość
4. Natychmiast po nagłówku następuje globalne metadane
5. Po globalnych metadanych mogą znajdować się sekcje z metadanymi według strumienia/rozdziału.
6. Sekcja zaczyna się od nazwy sekcji pisanej wielkimi literami (np. STREAM lub ROZDZIAŁ) w
nawiasy ([, ]) i kończy się kolejną sekcją lub końcem pliku.
7. Na początku sekcji rozdziału może znajdować się opcjonalna podstawa czasowa do wykorzystania
wartości początkowe/końcowe. Musi być w formie PODSTAWA CZASU=num/dzień, Gdzie num i dzień są liczbami całkowitymi.
Jeśli brakuje podstawy czasu, przyjmuje się, że czas rozpoczęcia/zakończenia jest podany w milisekundach.
Następnie sekcja rozdziału musi zawierać czas rozpoczęcia i zakończenia rozdziału w formie START =num,
KONIEC=num, Gdzie num jest dodatnią liczbą całkowitą.
8. Puste linie i linie zaczynające się od ; or # są ignorowane.
9. Klucze lub wartości metadanych zawierające znaki specjalne (=, ;, #, \ i nowa linia) musi
uciec z odwrotnym ukośnikiem \.
10. Zwróć uwagę, że białe znaki w metadanych (np bla = bar) jest uważany za część
tag (w powyższym przykładzie kluczem jest bla , wartosc jest
bar).
Plik ffmetadata może wyglądać tak:
;FFMETADANE1
title=rower\\szopa
;to jest komentarz
artist=Drużyna trolli FFmpeg
[ROZDZIAŁ]
PODSTAWA CZASU=1/1000
START=0
#rozdział kończy się o 0:01:00
KONIEC=60000
tytuł=rozdział \#1
[STRUMIEŃ]
tytuł=wiele\
linia
Używając muxera i demuxera ffmetadata, można wyodrębnić metadane z danych wejściowych
plik do pliku ffmetadata, a następnie transkoduj plik do pliku wyjściowego z
edytowany plik ffmetadata.
Wyodrębnianie pliku ffmetadata za pomocą ffmpeg wygląda następująco:
ffmpeg -i WEJŚCIE -f ffmetadata FFMETADATAFILE
Ponowne wstawienie edytowanych informacji o metadanych z pliku FFMETADATAFILE można wykonać w następujący sposób:
ffmpeg -i WEJŚCIE -i FFMETADATAFILE -map_metadata 1 -kodek kopiuj WYJŚCIE
Korzystaj z formatów ffmpeg online, korzystając z usług onworks.net