Wiem, że ffmpeg jest w stanie odczytać dane z stdin
zamiast odczytywać z dysku za pomocą ffmpeg -i -
. Czy jest to obsługiwane dla wszystkich formatów plików? Jeśli tak nie jest, czy istnieje lista obsługiwanych formatów plików?ffmpeg: które formaty plików obsługują użycie stdin?
Odpowiedz
Musisz uruchomić ffmpeg -protocols
w celu określenia, czy protokół pipe
(odczytu i zapisu z stdin i stdout) obsługiwanych w wersji ffmpeg a następnie ffmpeg -formats
aby zobaczyć listę obsługiwanych formatów. W poniższym fragmencie zobaczysz notatkę na rurze wyjściowej, która musi być widoczna dla niektórych protokołów. Dla protokołów wejściowych nie ma takiego ograniczenia.
Od man ffmpeg-protocols
:
PROTOKOŁY
Protokoły są skonfigurowane elementy FFmpeg, które pozwalają na dostęp zasobów, które wymagają użycia konkretnego protokołu.
Po skonfigurowaniu kompilacji FFmpeg wszystkie obsługiwane protokoły są domyślnie włączone . Możesz wymienić wszystkie dostępne przy użyciu opcji konfiguracji konfigurowania
--list-protocols
.Można wyłączyć wszystkie protokoły z użyciem opcji configure
--disable-protocols
i selektywnie włączyć protokół używając opcji--enable-protocol=PROTOCOL
, czy można wyłączyć konkretny protokół używając opcji--disable-protocol=PROTOCOL
.Opcja
-protocols
narzędzi ff * wyświetli listę obsługiwanych protokołów .Opis dostępnych protokołów. ... pipe
Protokół dostępu do rur systemu UNIX.Umożliwia odczyt i zapis z potoków UNIX.
Przyjęty składni:
pipe:[<number>]
liczba oznacza liczbę odpowiadającą deskryptora rury (na przykład 0, 1 do standardowego wejścia na standardowe wyjście, 2 do stderr). Jeśli liczba nie jest określona jako , domyślnie deskryptor pliku stdout będzie używany do zapisu , standardowe wejście do odczytu.
Należy zauważyć, że niektóre formaty (zazwyczaj MOV) wymagają, aby protokół wyjściowy był widoczny, więc zawiodą z protokołem wyjścia rury.
Dzięki, że idealnie pasowały do moich wymagań;) –
W mojej wersji ffmpeg (1.2.1) jest to 'ffmpeg -protocols' –
Skąd to wiesz? Czy to jest w dokumentacji? –