
Ich muss zwei verschiedene Videodateien zusammenführen und verwendeVerlustfreier Schnittfür die Aufgabe. Es heißt jedoch, dass die Dateien dieselben Codecs, Abmessungen und Bildraten haben müssen.
Quelle ist mkv V_MPEG4/ISO/AVC mit Vorbis, Ziel ist avi xvid mit ac3.
- Vollständige Parameter beider Dateien mit ffmpeg-Kodierung
Format : AVI
Format/Info : Audio Video Interleave
File size : 6.20 MiB
Duration : 46 s 280 ms
Overall bit rate : 1 124 kb/s
Writing application : Lavf58.45.100
Video
ID : 0
Format : MPEG-4 Visual
Format profile : Advanced Simple@L5
Format settings : BVOP2
Format settings, BVOP : 2
Format settings, QPel : No
Format settings, GMC : No warppoints
Format settings, Matrix : Default (MPEG)
Muxing mode : Packed bitstream
Codec ID : XVID
Codec ID/Hint : XviD
Duration : 46 s 280 ms
Bit rate : 921 kb/s
Width : 576 pixels
Height : 432 pixels
Display aspect ratio : 3:2
Frame rate : 25.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.148
Stream size : 5.08 MiB (82%)
Writing library : XviD 64
Audio
ID : 1
Format : AC-3
Format/Info : Audio Coding 3
Commercial name : Dolby Digital
Codec ID : 2000
Duration : 46 s 254 ms
Bit rate mode : Constant
Bit rate : 192 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 44.1 kHz
Frame rate : 28.711 FPS (1536 SPF)
Bit depth : 16 bits
Compression mode : Lossy
Stream size : 1.06 MiB (17%)
Alignment : Aligned on interleaves
Interleave, duration : 35 ms (0.87 video frame)
Interleave, preload duration : 347 ms
Service kind : Complete Main
- Parameter der Datei, die ich neu kodieren/kodieren möchte (damit die Parameter oben angezeigt werden):
Format : Matroska
Format version : Version 4
File size : 2.36 MiB
Duration : 27 s 999 ms
Overall bit rate mode : Variable
Overall bit rate : 706 kb/s
Writing application : Lavf58.45.100
Writing library : Lavf58.45.100
ErrorDetectionType : Per level 1
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings : CABAC / 4 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 4 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 27 s 933 ms
Bit rate : 564 kb/s
Width : 854 pixels
Height : 480 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 30.303 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.045
Stream size : 1.88 MiB (80%)
Default : Yes
Forced : No
Color range : Limited
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709
Audio
ID : 2
Format : Vorbis
Format settings, Floor : 1
Codec ID : A_VORBIS
Duration : 27 s 837 ms
Bit rate mode : Variable
Bit rate : 128 kb/s
Channel(s) : 2 channels
Sampling rate : 48.0 kHz
Compression mode : Lossy
Delay relative to video : -52 ms
Stream size : 435 KiB (18%)
Writing application : Lavc58.91.100
Writing library : libVorbis (Reducing Environment) (20200704 (Reducing Environment))
Default : Yes
Forced : No
Wie kann ich bitte alle Daten aus der Zieldatei extrahieren und sie als Parameter in einen FFmpeg-Quelldatei-Kodierungsbefehl eingeben? Ich habe nachgeschaut, ob es dafür ein Skript gibt, kann es aber nicht finden.
Antwort1
Sie müssen es manuell tun.
ffmpeg -i input.mkv -c:v libxvid -vf scale=-2:432 -r 25 -profile:v 0 -level 5 -vtag XVID -mpeg_quant 1 -b:v 921k -bf 2 -c:a ac3 -ac 2 -ar 44100 output.avi
Antwort2
Ich habe noch keine gute Lösung gefunden, aberEs gibt ein Linux-Bash-SkriptVersuchen Sie, die Aufgabe des Auffindens von Unterschieden in zusammenzuführenden Videofragmenten zu automatisieren und schlagen Sie Befehle zum Beheben der Unterschiede vor.
Antwort3
Das hier kommt dem sehr nahe: „Skalieren Sie ein Video so, dass es einem anderen entspricht, ohne die Abmessungen vorab festzulegen“, legen Sie zwei Videos nebeneinander und skalieren Sie das zweite Video so, dass es dem ersten entspricht:
ffmpeg -i vid1.mp4 -i vid2.mp4 -filter_complex "[1:v][0:v]scale2ref=oh*mdar:h=in_h:[v1][v0];[v0][v1]hstack[vo]" -map "[vo]" ./output-video.mp4