Problem:
Weil die Untertitelspuren erst nach etwas über 6 Sekunden beginnen, findet weder ffprobe noch mediainfo diese streams.
Leider kann ffmpeg diese Spuren dann auch nicht in das neue Video einbinden.
> ffmpeg -fflags +genpts -i "Avengers_4_-_Endgame.mpg" -map 0:v -c:v libx264 -profile:v high -preset veryslow -tune film -x264opts ref=4:b-pyramid=strict:bluray-compat=1:weightp=0:vbv-maxrate=12500:vbv-bufsize=12500:level=3:slices=4:b-adapt=2:direct=auto:colorprim=bt709:transfer=bt709:colormatrix=bt709:keyint=50:aud:subme=9:nal-hrd=vbr -movflags faststart -crf 16 -vf scale=856x480,pad='max(iw\,ih*(16/9)):ow/(16/9):(ow-iw)/2:(oh-ih)/2',setsar='1/1' -keyint_min 2-8 -map 0:a:0 -c:a libfdk_aac -afterburner 1 -b:a 344k -map 0:a:1 -c:a libfdk_aac -afterburner 1 -b:a 344k -map 0:s:0? -c:s copy -map 0:s:1? -c:s copy -map 0:s:2? -c:s copy -map 0:s:3? -c:s copy -f mp4 -y ./Avengers_4_-_Endgame_-_mit_Untertitel.mp4
Input #0, mpeg, from 'Avengers_4_-_Endgame.mpg':
Duration: 02:53:46.02, start: 0.287267, bitrate: 5848 kb/s
Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, progressive), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x80]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
Stream #0:2[0x81]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 384 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (mpeg2video (native) -> h264 (libx264))
Stream #0:1 -> #0:1 (ac3 (native) -> aac (libfdk_aac))
Stream #0:2 -> #0:2 (ac3 (native) -> aac (libfdk_aac))
Press [q] to stop, [?] for help
[libx264 @ 0x8074fec00] using SAR=1/1
[libx264 @ 0x8074fec00] using cpu capabilities: MMX2 SSE2Fast LZCNT
[libx264 @ 0x8074fec00] profile High, level 3.0, 4:2:0, 8-bit
[libx264 @ 0x8074fec00] 264 - core 157 - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - ...
Output #0, mp4, to './Avengers_4_-_Endgame_-_mit_Untertitel.mp4':
Metadata:
encoder : Lavf58.20.100
Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p(progressive), 856x480 [SAR 1:1 DAR 107:60], q=-1--1, 25 fps, 12800 tbn, 25 tbc
Metadata:
encoder : Lavc58.35.100 libx264
Side data:
cpb: bitrate max/min/avg: 12500000/0/0 buffer size: 12500000 vbv_delay: -1
Stream #0:1: Audio: aac (libfdk_aac) (mp4a / 0x6134706D), 48000 Hz, 5.1, s16, 344 kb/s
Metadata:
encoder : Lavc58.35.100 libfdk_aac
Stream #0:2: Audio: aac (libfdk_aac) (mp4a / 0x6134706D), 48000 Hz, 5.1, s16, 344 kb/s
Metadata:
encoder : Lavc58.35.100 libfdk_aac
[mpeg @ 0x807585000] New subtitle stream 0:3 at pos:6539278 and DTS:6.48727sits/s speed=1.49x
[mpeg @ 0x807585000] New subtitle stream 0:4 at pos:6541326 and DTS:6.48727s
[mpeg @ 0x807585000] New subtitle stream 0:5 at pos:6545422 and DTS:6.48727s
[mpeg @ 0x807585000] New subtitle stream 0:6 at pos:6608910 and DTS:6.56727s
[mp4 @ 0x807585c00] Starting second pass: moving the moov atom to the beginning of the file
frame= 162 fps= 27 q=-1.0 Lsize= 943kB time=00:00:06.36 bitrate=1215.0kbits/s speed=1.06x
video:416kB audio:517kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.010588%
Leider erkennt auch dieser Aufruf keine Untertitelspuren:
> ffmpeg -ss 10 -i Avengers_4_-_Endgame.mpg
Frage:
Wie kann ich ffmpeg dazu bringen, auch später einsetzenden Spuren mit einzubinden?
Wie kann ich den genauen Zeitpunkt ermitteln, wann die Untertitelspuren einsetzen (genau auf den Frame)?
Wie kann ich das erste Stück ohne Untertitel, von dem Rest abtrennen, um beide getrennt zu transkodieren?
Für hilfreiche Antworten wäre ich sehr dankbar.
Gruß
Yoda