Решено - похоже, -map_metadata
только верхние клавиши расположены перед главами, вам также нужно -map_chapters
получить главы.
ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -map_chapters 1 -codec copy OUTPUT
Я пытаюсь добавить пользовательские главы с ffmpeg в файл mp4, извлекая файл метаданных и следуя этому руководству .
Однако, когда я редактирую файл метаданных, чтобы изменить любое из названий глав, вторая команда для повторного добавления метаданных игнорирует изменения в главах и оставляет их как есть. Он определенно правильно читает в файле метаданных, например, когда ffmpeg распечатывает данные двух входных файлов, он печатает потоки mp4 и все метаданные файла метаданных, все главы правильно отформатированы и проанализированы.
Как только он создает выходной файл, он снова получает старые имена глав. Если я изменю другие метаданные, которые работают (например, ключ заголовка или ключи исполнителя), но главы не будут.
Полный журнал запуска команды:
PS D:\ffmpeg> ./bin/ffmpeg.exe -i .\new_file.mp4 -i FFMETADATAFILE -map_metadata 1 -codec copy .\output.mp4 ffmpeg version N-90979-g08032331ac Copyright (c) 2000-2018 the FFmpeg developers built with gcc 7.3.0 (GCC) configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth libavutil 56. 18.100 / 56. 18.100 libavcodec 58. 19.100 / 58. 19.100 libavformat 58. 13.101 / 58. 13.101 libavdevice 58. 4.100 / 58. 4.100 libavfilter 7. 21.100 / 7. 21.100 libswscale 5. 2.100 / 5. 2.100 libswresample 3. 2.100 / 3. 2.100 libpostproc 55. 2.100 / 55. 2.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '.\new_file.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 title : new_file encoder : Lavf57.46.100 Duration: 02:01:34.85, start: 0.000000, bitrate: 2940 kb/s Chapter #0:0: start 0.000000, end 628.962000 Metadata: title : Chapter 1 Chapter #0:1: start 628.962000, end 1042.083000 Metadata: title : Chapter 2 Chapter #0:2: start 1042.083000, end 1882.172000 Metadata: title : Chapter 3 Chapter #0:3: start 1882.172000, end 2479.102000 Metadata: title : Chapter 4 Chapter #0:4: start 2479.102000, end 3095.718000 Metadata: title : Chapter 5 Chapter #0:5: start 3095.718000, end 3681.511000 Metadata: title : Chapter 6 Chapter #0:6: start 3681.511000, end 4145.600000 Metadata: title : Chapter 7 Chapter #0:7: start 4145.600000, end 5149.019000 Metadata: title : Chapter 8 Chapter #0:8: start 5149.019000, end 5704.908000 Metadata: title : Chapter 9 Chapter #0:9: start 5704.908000, end 5980.850000 Metadata: title : Chapter 10 Chapter #0:10: start 5980.850000, end 6826.403000 Metadata: title : Chapter 11 Chapter #0:11: start 6826.403000, end 7294.746000 Metadata: title : Chapter 12 Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x816 [SAR 1:1 DAR 40:17], 2678 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default) Metadata: handler_name : SoundHandler Stream #0:2(eng): Data: bin_data (text / 0x74786574) Metadata: handler_name : SubtitleHandler Input #1, ffmetadata, from 'FFMETADATAFILE': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 title : Title encoder : Lavf58.13.101 Duration: 02:01:34.75, start: 0.000000, bitrate: 0 kb/s Chapter #1:0: start 0.000000, end 628.962000 Metadata: title : Edited Name Chapter #1:1: start 628.962000, end 1042.083000 Metadata: title : Chapter 2 Chapter #1:2: start 1042.083000, end 1882.172000 Metadata: title : Chapter 3 Chapter #1:3: start 1882.172000, end 2479.102000 Metadata: title : Chapter 4 Chapter #1:4: start 2479.102000, end 3095.718000 Metadata: title : Chapter 5 Chapter #1:5: start 3095.718000, end 3681.511000 Metadata: title : Chapter 6 Chapter #1:6: start 3681.511000, end 4145.600000 Metadata: title : Chapter 7 Chapter #1:7: start 4145.600000, end 5149.019000 Metadata: title : Chapter 8 Chapter #1:8: start 5149.019000, end 5704.908000 Metadata: title : Chapter 9 Chapter #1:9: start 5704.908000, end 5980.850000 Metadata: title : Chapter 10 Chapter #1:10: start 5980.850000, end 6826.403000 Metadata: title : Chapter 11 Chapter #1:11: start 6826.403000, end 7294.746000 Metadata: title : Chapter 12 File '.\output.mp4' already exists. Overwrite ? [y/N] y Output #0, mp4, to '.\output.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 title : Title encoder : Lavf58.13.101 Chapter #0:0: start 0.000000, end 628.962000 Metadata: title : Chapter 1 Chapter #0:1: start 628.962000, end 1042.083000 Metadata: title : Chapter 2 Chapter #0:2: start 1042.083000, end 1882.172000 Metadata: title : Chapter 3 Chapter #0:3: start 1882.172000, end 2479.102000 Metadata: title : Chapter 4 Chapter #0:4: start 2479.102000, end 3095.718000 Metadata: title : Chapter 5 Chapter #0:5: start 3095.718000, end 3681.511000 Metadata: title : Chapter 6 Chapter #0:6: start 3681.511000, end 4145.600000 Metadata: title : Chapter 7 Chapter #0:7: start 4145.600000, end 5149.019000 Metadata: title : Chapter 8 Chapter #0:8: start 5149.019000, end 5704.908000 Metadata: title : Chapter 9 Chapter #0:9: start 5704.908000, end 5980.850000 Metadata: title : Chapter 10 Chapter #0:10: start 5980.850000, end 6826.403000 Metadata: title : Chapter 11 Chapter #0:11: start 6826.403000, end 7294.746000 Metadata: title : Chapter 12 Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x816 [SAR 1:1 DAR 40:17], q=2-31, 2678 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 90k tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 256 kb/s (default) Metadata: handler_name : SoundHandler Stream mapping: Stream #0:0 -> #0:0 (copy) Stream #0:1 -> #0:1 (copy)
Вы можете видеть, что я отредактировал ключ заголовка и имя первой главы в Input # 1, файл метаданных, но тогда только вывод отличается в заголовке.
Любая помощь приветствуется.
Решено - похоже, -map_metadata
только верхние клавиши расположены перед главами, вам также нужно -map_chapters
получить главы.
ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -map_chapters 1 -codec copy OUTPUT