Czy można łączyć pliki wideo za pomocą `cat`?


18

Zastanawiam się, czy można scalić pliki wideo za pomocą catpolecenia? Mam na myśli, czy wynikowy plik będzie odtwarzany bezproblemowo?


1
Czy próbowałeś?
Pan Lister,

3
Faktycznie zrobiłem. Ale w jakiś sposób wynik nie zawierał drugiego pliku, chociaż rozmiar pliku był sumą obu.
Hamed Momeni,

Odpowiedzi:


21

Tak to mozliwe. Ale nie wszystkie formaty go obsługują.

FAQ ffmpeg :

Kilka kontenerów multimedialnych (MPEG-1, MPEG-2 PS, DV) pozwala łączyć pliki wideo, łącząc je.

Podczas konwersji do formatów RAW istnieje również duża szansa, że ​​pliki mogą zostać połączone.

ffmpeg -i input1.avi -qscale:v 1 intermediate1.mpg
ffmpeg -i input2.avi -qscale:v 1 intermediate2.mpg
cat intermediate1.mpg intermediate2.mpg > intermediate_all.mpg
ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi

Ale używając catw ten sposób utworzonych plików pośrednich, które nie są konieczne. Jest to lepsze podejście, aby uniknąć tworzenia tych plików pośrednich:

ffmpeg -i input1.avi -qscale:v 1 intermediate1.mpg
ffmpeg -i input2.avi -qscale:v 1 intermediate2.mpg
ffmpeg -i concat:"intermediate1.mpg|intermediate2.mpg" -c copy intermediate_all.mpg
ffmpeg -i intermediate_all.mpg -qscale:v 2 output.avi

1
Czy nadal nie tworzysz plików pośrednich w drugiej wersji?
John Gowers,

6

Istnieją dwa rodzaje plików multimedialnych

  • strumieniowe

  • nieprzesyłane

Główną różnicą jest sposób, w jaki dwa formaty plików zawierają meta-informacje. w przypadku formatów niemożliwych do przesłania meta-informacja c („nagłówek”) jest przechowywana w określonej pozycji w pliku, zwykle na początku, a czasem na końcu. Nie można po prostu łączyć takich plików, ponieważ meta-informacje z jednego z plików plików będą znajdować się w niestandardowej lokalizacji i dlatego zostaną zignorowane.

OTOH, formaty przesyłane strumieniowo muszą być w stanie obsłużyć słuchaczy, którzy zaczną odtwarzać plik „gdzieś pośrodku”. Dlatego formaty te ciągle wysyłają ponownie meta-informacje, a nawet umożliwiają aktualizację ich w pliku / strumieniu. Te formaty można po prostu połączyć.



1

Jak powiedział BЈовић, ogólnie każdy plik ma swój własny nagłówek. Wypróbuj ten przykład z Ubuntu Porady :

mencoder -ovc copy -oac copy video1.avi video2.avi -o completevideos.avi 

0

Nie, nie jest to możliwe, ponieważ każdy plik wideo ma nagłówek. Aby scalić filmy, musisz użyć narzędzia (na przykład ffmpeg lub mencoder ).


9
Niezupełnie poprawne. Istnieją formaty wideo bez nagłówka, np. Rawvideo lub yuv4mpegpipe, które generują surowe dane. Dlatego podczas odczytu tych formatów należy podać rozmiar ramki, ponieważ rozmiar jest nieznany z powodu brakującego nagłówka.
Marco

2
Dlaczego więc udało mi się to z plikami DV?
Pithikos,

1
@Pithikos nie ma pojęcia. może
ćwiczysz
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.