У меня проблемы с получением ffmpeg для копирования всех аудиопотоков из файла .mp4. Похоже, что после нескольких часов поиска в сети это должно скопировать все потоки (как показано в примере 4 здесь):
ffmpeg -i in.mp4 -map 0 -c copy out.mp4
in.mp4
содержит 3 потока:
- видео
- Аудио трек 1
- Аудио дорожка 2
out.mp4
(который должен быть идентичен in.mp4
) содержит только 2 потока:
- видео
- Аудио трек 1
FFmpeg, кажется, правильно идентифицирует все 3 потока, но не копирует все из них. Выход из FFmpeg:
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Stream #0:2 -> #0:2 (copy)
Изменить: Вывод из ffmpeg -v 9 -loglevel 99 -i in.mp4
:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from in.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.36.100
Duration: 00:00:06.03, start: 0.000000, bitrate: 5582 kb/s
Stream #0:0(und), 1, 1/15360: Video: h264 (Main), 1 reference frame (avc1 /
0x31637661), yuv420p(tv, bt470bg/unknown/unknown, left), 1920x1080 (0x0) [SAR 1:
1 DAR 16:9], 0/1, 5317 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(und), 1, 1/48000: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
stereo, fltp, 128 kb/s (default)
Metadata:
handler_name : SoundHandler
Stream #0:2(und), 1, 1/48000: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz,
stereo, fltp, 128 kb/s
Metadata:
handler_name : SoundHandler
Successfully opened the file.
At least one output file must be specified
[AVIOContext @ 0000000001c2b9e0] Statistics: 153350 bytes read, 2 seeks
Редактировать 2 (решено): мне удалось найти правильный синтаксис из этого билета. Для любых других заинтересованных сторон правильный синтаксис:
ffmpeg -i in.mp4 -vcodec copy -c:a copy -map 0 out.mp4
Это скопирует все потоки.