Yanıtlar:
Akışlarınızı seçmek için -mapseçeneği kullanın . Varsayılan akış seçimi her akış türünden yalnızca birini seçecektir, bu yüzden -mapkullanılmalıdır.

ffmpeg -i video.mkv -i audio.mp3 -map 0:v -map 0:a:0 -map 1:a \
-metadata:s:a:0 language=eng -metadata:s:a:1 language=sme -codec copy \
-shortest output.mkv
0:v- 0İlk giriş olan video.mkv. vVasıta "seçeneğini video akışı türü".
0:a:0- 0İlk giriş olan video.mkv. aVasıta "ses akışı türünü seçin". Sonuncusu 0, bu girişten gelen ilk ses akışını ifade eder. Yalnızca 0:akullanılırsa, tüm video akışları eşlenir.
1:a- Kullanılan 1ikinci giriş anlamına gelir audio.mp3. aVasıta "ses akışı türünü seçin".
-codec copykodlamak yerine kopyalamayı (yeniden mux) aktaracaktır . Belirli bir ses kodekine ihtiyacınız varsa, -c:v copy(videoyu saklamak için) belirtmeli ve sonra örneğin -c:a libmp3lameses akışını MP3 olarak yeniden kodlamanız gerekir.
-shortest en kısa giriş sona erdiğinde çıkışı sonlandıracaktır.

ffmpeg -i vid.mkv -i aud.mp3 -filter_complex "[0:a][1:a]amerge=inputs=2[a]" \
-map 0:v -map "[a]" -c:v copy -c:a aac -strict experimental -b:a 192k -ac 2 \
-shortest out.mp4
amergefiltre burada kullanılır, bu nedenle ses bu örnekte akış kopyalanamaz.-codec copy, ama sabit (ffmpeg'in farklı versiyonu), birlikte yaşadığım diğer sorun -map, yanlış sayıda akıştan şikayet etti.
-map 0:v -map 1:a. Bu ilk dosyadan (video.mkv) video almak ve sonra output.mkv oluşturmak için ikinci dosyadan (audio.mp4) ses almak anlamına gelir ... Ne için emin değilim -map 0:a:0. Onu hariç tuttum ve istediğim sonuçları elde ettim.