Я пытаюсь сжать некоторые видео с помощью FFmpeg, которые содержат несколько потоков, некоторые из которых не распознаются FFmpeg:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'GX010686.MP4':
Metadata:
major_brand : mp41
minor_version : 538120216
compatible_brands: mp41
creation_time : 2018-12-10T19:09:25.000000Z
firmware : HD7.01.01.51.00
Duration: 00:08:52.54, start: 0.000000, bitrate: 60136 kb/s
Stream #0:0(eng): Video: hevc (Main) (hvc1 / 0x31637668), yuvj420p(pc, bt709), 3840x2160 [SAR 1:1 DAR 16:9], 59886 kb/s, 59.94 fps, 59.94 tbr, 60k tbn, 59.94 tbc (default)
Metadata:
creation_time : 2018-12-10T19:09:25.000000Z
handler_name : GoPro H.265
encoder : GoPro H.265 encoder
timecode : 19:27:44:06
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 189 kb/s (default)
Metadata:
creation_time : 2018-12-10T19:09:25.000000Z
handler_name : GoPro AAC
timecode : 19:27:44:06
Stream #0:2(eng): Data: none (tmcd / 0x64636D74) (default)
Metadata:
creation_time : 2018-12-10T19:09:25.000000Z
handler_name : GoPro TCD
timecode : 19:27:44:06
Stream #0:3(eng): Data: bin_data (gpmd / 0x646D7067), 35 kb/s (default)
Metadata:
creation_time : 2018-12-10T19:09:25.000000Z
handler_name : GoPro MET
Stream #0:4(eng): Data: none (fdsc / 0x63736466), 13 kb/s (default)
Metadata:
creation_time : 2018-12-10T19:09:25.000000Z
handler_name : GoPro SOS
Когда я использую ffmpeg -i $file -c:v libx265 -crf 23 -c:a libvorbis -q:a 5 $newfilename
, в новом файле останется только аудио и видеопоток. Поэтому я попытался ffmpeg -i $filename -map 0 -c copy -c:v libx265 -crf 23 -c:a libvorbis -q:a 5 $newfilename
, но это дает мне следующую ошибку:
[mp4 @ 0xf974ce7d500] Could not find tag for codec none in stream #2, codec not currently supported in container
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:0 --
Я знаю, что FFmpeg не понимает эти дополнительные метаданные, но это не нужно. Как я могу просто скопировать потоки с кодеком none
в новый файл?