Mam kilka webm
plików. Większość z nich jest w porządku (strumień wideo + audio). Niektóre z nich mają w jakiś sposób 2 strumienie, ale strumień audio ma 0 kb. Pliki pochodzą z serwera multimediów, więc nie mogę tego zmienić.
Dużo pracuję z tymi plikami (przycinanie, skalowanie wideo, scalanie itp.) Za pomocą skryptu. Ale te pliki powodują błędy. Przykład (uproszczone polecenie bez filtrów związanych z wideo):
ffmpeg -y -i file1.webm -i file2.webm -filter_complex "[0:a][1:a]amerge[a]" -map "[a]" -ac 2 output.opus
Plik file1.webm
ma pusty strumień audio, file2.webm
ma normalny strumień audio. Plik output.opus
jest pusty i ma rozmiar 137 bajtów. Polecenie wyjściowe to https://pastebin.com/57BMDGWU
Zawiera następujące powiązane komunikaty:
[Parsed_amerge_0 @ 0x42ec380] Brak układu kanału dla wejścia 1
[Parsed_amerge_0 @ 0x42ec380] Układy kanałów wejściowych pokrywają się: układ wyjściowy będzie określony przez liczbę różnych kanałów wejściowych
ffprobe pokazuje, że jest strumień:
ffprobe -i file1.webm -show_streams -select_streams a -loglevel error
https://pastebin.com/VR9EV0xm
Pytanie brzmi: jeśli jest pusty strumień audio, jak go zignorować i uzyskać niepuste strumienie do wyjścia?