Mam kilka plików wideo MP4, które chcę scalić.
Korzystam z tych poleceń, aby przekonwertować .mp4 na .ts, a następnie scalić je ze sobą. odniesienie
ffmpeg -i part1.mp4 -bsf:v h264_mp4toannexb -f mpegts -y part1.ts # executes successfully
ffmpeg -i part2.mp4 -bsf:v h264_mp4toannexb -f mpegts -y part2.ts # executes successfully
ffmpeg -i "concat:part1.ts|part2.ts" -bsf:a aac_adtstoasc -y full.mp4 # Error
Błąd: (ale wykonywanie nadal trwa) pakiety wejściowe są zbyt małe błąd nakładania filtrów strumienia bitów na pakiet wyjściowy dla strumienia nr 0: czas przeszły 0,999992 za duży
scalenie 2 plików zajmuje więcej niż godziny, ale nie zajmuje się innymi plikami wideo (myślę, że jest problem z part2.mp4, ale nie wiem jak go rozwiązać)
Oto informacje o filmie
part1.mp4
C:\Users\JAGZ\Desktop\vid>ffmpeg -i part1.mp4
ffmpeg version 3.2.4 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 6.3.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-b
zlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcac
a --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr
--enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --e
nable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enab
le-zlib
libavutil 55. 34.101 / 55. 34.101
libavcodec 57. 64.101 / 57. 64.101
libavformat 57. 56.101 / 57. 56.101
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'part1.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.66.104
Duration: 00:00:07.21, start: 0.000000, bitrate: 2355 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt470bg), 720x576 [SAR 128:117 DAR 160:117], 2034 kb/s, 25 fps, 2
5 tbr, 90k tbn, 50 tbc (default)
Metadata:
handler_name : VideoHandler
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 317 kb/s (default)
Metadata:
handler_name : SoundHandler
At least one output file must be specified
part2.mp4
C:\Users\JAGZ\Desktop\vid>ffmpeg -i part2.mp4
ffmpeg version 3.2.4 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 6.3.0 (GCC)
configuration: --enable-gpl --enable-version3 --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-b
zlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcac
a --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr
--enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --e
nable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enab
le-zlib
libavutil 55. 34.101 / 55. 34.101
libavcodec 57. 64.101 / 57. 64.101
libavformat 57. 56.101 / 57. 56.101
libavdevice 57. 1.100 / 57. 1.100
libavfilter 6. 65.100 / 6. 65.100
libswscale 4. 2.100 / 4. 2.100
libswresample 2. 3.100 / 2. 3.100
libpostproc 54. 1.100 / 54. 1.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 003075c0] stream 0, timescale not set
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'part2.mp4':
Metadata:
major_brand : M4V
minor_version : 1
compatible_brands: M4V M4A mp42isom
creation_time : 2016-03-07T16:01:20.000000Z
title : 2006/14 Coke Crisis
media_type : 9
network : A/V Input
date : 2016-03-07
iTunMOVI : <?xml version="1.0" encoding="UTF-8"?>
: <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
: <plist version="1.0">
: <dict>
: <key>asset-info</key>
: <dict>
: <key>file-size</key>
: <integer>837215671</integer>
: <key>flavor</key>
: <string>4:640x480</string>
: <key>high-definition</key>
: <false/>
: <key>screen-format</key>
: <string>standard</string>
: <key>soundtrack</key>
: <string>LC</string>
: </dict>
: <key>cast</key>
: <array/>
: <key>codirectors</key>
: <array/>
: <key>copy-warning</key>
: <string></string>
: <key>directors</key>
: <array/>
: <key>producers</key>
: <array/>
: <key>screenwriters</key>
: <array/>
: <key>studio</key>
: <string></string>
: </dict>
: </plist>
:
Duration: 01:09:03.08, start: 0.000000, bitrate: 1616 kb/s
Stream #0:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv), 640x480 [SAR 1:1 DAR 4:3], 1485 kb/s, 24.99 fps, 25 tbr, 25k
tbn, 50 tbc (default)
Metadata:
creation_time : 2016-03-07T16:01:20.000000Z
handler_name : ?Apple Video Media Handler
encoder : H.264/AVC
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 127 kb/s (default)
Metadata:
creation_time : 2016-03-07T16:01:20.000000Z
handler_name : ?Apple Sound Media Handler
Stream #0:2: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 512x748 [SAR 72:72 DAR 128:187], 90k tbr, 90k tbn, 90k tbc
At least one output file must be specified
czy ktoś może mi zasugerować, jaką zmianę wprowadzę, aby połączyć te filmy?
video
ffmpeg
video-conversion
video-encoding
JAGGADAKU
źródło
źródło
ffmpeg -i part1.mp4
. (Musisz wyłączyć-v quiet
.)Odpowiedzi:
Wystąpił problem z wprowadzonymi danymi: Twoje wejściowe filmy wideo mają różne wymiary klatki (720 × 576 vs. 640 × 480). W takim przypadku nie można po prostu połączyć surowych strumieni bitów. Cóż, możesz, ale wtedy odtwarzanie nie będzie obsługiwać zmiany rozdzielczości - pokaże się tylko w rozdzielczości pierwszego wideo wejściowego lub może spowodować awarię niektórych odtwarzaczy.
Zamiast tego prawdopodobnie powinieneś zdekodować filmy i doprowadzić je do wspólnego formatu (wymiary klatki, liczba klatek na sekundę, przestrzeń kolorów, proporcje pikseli,…), a następnie ponownie zakodować.
Powyższe można osiągnąć za pomocą
concat
filtra, ale najpierw musisz przeskalować / wstawić jedno z tych wejść, np. Przez zwiększeniepart2.mp4
do 720 × 576 (z wypełnieniem):Zobacz ten post i Wiki FFmpeg, aby uzyskać więcej informacji na temat skalowania i konkatenacji. I przeczytaj przewodnik kodowania H.264 na temat ustawiania jakości wydruku.
źródło
No such filter: 'force_original_aspect_ratio' Error initializing complex filters. Invalid argument
z systemu Windows[Parsed_concat_2 @ 04930620] Input link in1:v0 parameters (size 720x576, SAR 1:1) do not match the corresponding output link in0:v0 paramet ers (720x576, SAR 128:117) [Parsed_concat_2 @ 04930620] Failed to configure output pad on Parsed_concat_2 Error configuring complex filters. Invalid argument
To jest problem ... przepraszam, ale nie mam pojęcia, jak działa ten kompleks filtrów[NULL @ 047eb220] Unable to find a suitable output format for 'libx264' libx264: Invalid argument