archy schrieb:
> ffmpeg -i "concat:..." -c copy out.mpg"
Wenn du erzwingen willst, dass nicht codiert wird ( dann werden aber wahrscheinlich auch die Fehler nicht behoben ), dann gibt es die Optionen "vcodec" und "acodec" die du jeweils auf "copy" stellen kannst, dann sollte der Stream im selben Format wieder eingefügt werden. Lass ausserdem mal die Option -q weg.
ffmpeg -i "concat:..." -vocodec copy -acodec copy output.mpg
Danke für den Tipp, aber ist das nicht dasselbe wie -c copy
?
FFMPEG ist ein sehr mächtiges, aber auch ein sehr komplexes Tool, da hilf nur lesen, nach Tutorials im Netz suchen und probieren. Es ist mir auch nicht ganz klar was du jetzt noch erreichen willst. Du hast mit dem ersten Befehl ein Video erhalten, dass von guter Qualität ist, wie du selbst sagst, und von 4,2 GB auf 1,1 GB eingedampft ist, wozu also weitermachen.
Mein Ansatz war, erst mal eine möglichst unveränderte, aber fehlerbefreite Kopie zu haben, und darauf erst mal Filter anzuwenden (z.B. die von VLC), die das Zeilenzittern und die VHS-Fehlerstreifen am unteren Rand ausbügeln, und danach erst besser komprimierte Versionen zu erzeugen.
Ich habe nun mit:
ffmpeg -i CYD_copy.mpg -c:v copy -c:a libmp3lame -b:a 160k CYD_mpeg2-copy_mp3.mpg
ein brauchbares Resultat erzielt. Wie es aussieht, wurden dabei die Fehler im Audio-Stream korrigiert:
Input #0, mpeg, from 'CYD_copy.mpg':
Duration: 01:19:53.60, start: 0.540000, bitrate: 6930 kb/s
Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, bt470bg, top first), 704x576 [SAR 12:11 DAR 4:3], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x80]: Audio: ac3, 48000 Hz, stereo, fltp, 256 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (ac3 (native) -> mp3 (libmp3lame))
Press [q] to stop, [?] for help
[mpeg @ 0x560dfe257fa0] VBV buffer size not set, using default size of 130KB
If you want the mpeg file to be compliant to some specification
Like DVD, VCD or others, make sure you set the correct buffer size
Output #0, mpeg, to 'CYD_mp3.mpg':
Metadata:
encoder : Lavf57.83.100
Stream #0:0: Video: mpeg2video (Main), yuv420p(tv, bt470bg, top first), 704x576 [SAR 12:11 DAR 4:3], q=2-31, 25 fps, 25 tbr, 90k tbn, 25 tbc
Stream #0:1: Audio: mp3 (libmp3lame), 48000 Hz, stereo, fltp, 160 kb/s
Metadata:
encoder : Lavc57.107.100 libmp3lame
frame= 130 fps=0.0 q=-1.0 size= 4408kB time=00:00:05.12 bitrate=7052.8kbits/
frame= 248 fps=247 q=-1.0 size= 8226kB time=00:00:09.84 bitrate=6848.3kbits/
[mpeg @ 0x560dfe257fa0] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
frame= 359 fps=239 q=-1.0 size= 12176kB time=00:00:14.28 bitrate=6985.0kbits/
frame= 470 fps=234 q=-1.0 size= 16242kB time=00:00:18.72 bitrate=7107.6kbits/
[libmp3lame @ 0x560dfe2b1f20] Queue input is backward in time
[mpeg @ 0x560dfe257fa0] Non-monotonous DTS in output stream 0:1; previous: 1881448, current: 1880730; changing to 1881449. This may result in incorrect timestamps in the output file.
frame= 582 fps=232 q=-1.0 size= 20522kB time=00:00:23.16 bitrate=7256.4kbits/
frame= 693 fps=230 q=-1.0 size= 24778kB time=00:00:27.60 bitrate=7352.3kbits/
frame= 778 fps=221 q=-1.0 size= 28492kB time=00:00:31.00 bitrate=7527.3kbits/
frame= 887 fps=221 q=-1.0 size= 32820kB time=00:00:35.36 bitrate=7601.8kbits/
frame= 974 fps=215 q=-1.0 size= 36718kB time=00:00:38.84 bitrate=7742.8kbits/
frame= 1116 fps=222 q=-1.0 size= 40518kB time=00:00:44.52 bitrate=7454.3kbits/
frame= 1230 fps=222 q=-1.0 size= 44186kB time=00:00:49.08 bitrate=7373.9kbits/
frame= 1350 fps=224 q=-1.0 size= 47704kB time=00:00:53.88 bitrate=7251.9kbits/
frame= 1470 fps=225 q=-1.0 size= 50936kB time=00:00:58.68 bitrate=7109.9kbits/
[libmp3lame @ 0x560dfe2b1f20] Queue input is backward in time
frame= 1608 fps=228 q=-1.0 size= 54296kB time=00:01:04.20 bitrate=6927.4kbits/
[mpeg @ 0x560dfe257fa0] Non-monotonous DTS in output stream 0:1; previous: 5749288, current: 5748570; changing to 5749289. This may result in incorrect timestamps in the output file.
frame= 1741 fps=231 q=-1.0 size= 57540kB time=00:01:09.49 bitrate=6782.7kbits/
frame= 1879 fps=234 q=-1.0 size= 61164kB time=00:01:15.01 bitrate=6679.3kbits/
frame= 2007 fps=235 q=-1.0 size= 64710kB time=00:01:20.13 bitrate=6615.1kbits/
frame= 2136 fps=236 q=-1.0 size= 68262kB time=00:01:25.29 bitrate=6556.0kbits/
frame= 2260 fps=237 q=-1.0 size= 71672kB time=00:01:30.25 bitrate=6505.2kbits/
[libmp3lame @ 0x560dfe2b1f20] Queue input is backward in time
[mpeg @ 0x560dfe257fa0] Non-monotonous DTS in output stream 0:1; previous: 8174248, current: 8173528; changing to 8174249. This may result in incorrect timestamps in the output file.
frame= 2383 fps=237 q=-1.0 size= 75114kB time=00:01:35.14 bitrate=6467.4kbits/
frame= 2503 fps=237 q=-1.0 size= 78480kB time=00:01:39.94 bitrate=6432.7kbits/
frame= 2629 fps=238 q=-1.0 size= 82010kB time=00:01:44.98 bitrate=6399.3kbits/
frame= 2727 fps=236 q=-1.0 size= 86316kB time=00:01:48.90 bitrate=6492.9kbits/
[libmp3lame @ 0x560dfe2b1f20] Queue input is backward in time
[mpeg @ 0x560dfe257fa0] Non-monotonous DTS in output stream 0:1; previous: 10121848, current: 10121130; changing to 10121849. This may result in incorrect timestamps in the output file.
frame= 2832 fps=235 q=-1.0 size= 90676kB time=00:01:53.07 bitrate=6569.4kbits/
frame= 2926 fps=233 q=-1.0 size= 94772kB time=00:01:56.83 bitrate=6645.2kbits/
frame= 3025 fps=231 q=-1.0 size= 98768kB time=00:02:00.79 bitrate=6698.4kbits/
frame= 3122 fps=230 q=-1.0 size= 102644kB time=00:02:04.67 bitrate=6744.6kbits/
frame= 3230 fps=230 q=-1.0 size= 106676kB time=00:02:08.99 bitrate=6774.8kbits/
[libmp3lame @ 0x560dfe2b1f20] Queue input is backward in time
[mpeg @ 0x560dfe257fa0] Non-monotonous DTS in output stream 0:1; previous: 11760568, current: 11759850; changing to 11760569. This may result in incorrect timestamps in the output file.
frame= 3336 fps=229 q=-1.0 size= 110642kB time=00:02:13.20 bitrate=6804.6kbits/
frame= 3444 fps=228 q=-1.0 size= 114624kB time=00:02:17.52 bitrate=6828.1kbits/
frame= 3550 fps=228 q=-1.0 size= 118612kB time=00:02:21.76 bitrate=6854.3kbits/
frame= 3652 fps=227 q=-1.0 size= 122602kB time=00:02:25.84 bitrate=6886.7kbits/
[libmp3lame @ 0x560dfe2b1f20] Queue input is backward in time
frame= 3756 fps=226 q=-1.0 size= 126554kB time=00:02:30.00 bitrate=6911.5kbits/
[mpeg @ 0x560dfe257fa0] Non-monotonous DTS in output stream 0:1; previous: 13485688, current: 13484970; changing to 13485689. This may result in incorrect timestamps in the output file.
frame= 3866 fps=226 q=-1.0 size= 130496kB time=00:02:34.36 bitrate=6925.2kbits/
frame= 3975 fps=226 q=-1.0 size= 134232kB time=00:02:38.72 bitrate=6927.8kbits/
frame= 4090 fps=226 q=-1.0 size= 137908kB time=00:02:43.32 bitrate=6917.0kbits/
frame= 4198 fps=226 q=-1.0 size= 141580kB time=00:02:47.64 bitrate=6918.2kbits/
[.....]
Das Ergebnis funktioniert nun in Totem und auch in VLC. Der Ton ist so auch bis zum Ende synchron zum Bild. Super! Wegen This is deprecated and will stop working in the future und Fix your code to set the timestamps properly rätsle ich noch, welcher bessere Befehl das vermeiden könnte.
Vielen Dank für Deine allumfassende Hilfe.
Gruß Ulf