问题描述
我正在尝试使用 ffmpeg 4.3 从单个视频中修剪多部分
这是我使用的命令
`ffmpeg -i input.mp4 -filter_complex \
"[0:v]trim=start=4:end=22,setpts=PTS-STARTPTS[v0]; \
[0:a]atrim=start=4:end=22,asetpts=PTS-STARTPTS[a0]; \
[0:v]trim=start=26:end=100,setpts=PTS-STARTPTS[v1]; \
[0:a]atrim=start=26:end=100,asetpts=PTS-STARTPTS[a1]; \
[v0][a0][v1][a1]concat=n=2:v=1:a=1[v][a]" \
-map "[v]" -map "[a]" output.mp4`
在最新的 FFMPEG 4.3 中出现此错误
[mpeg4 @ 0x2b14e80] Invalid pixel aspect ratio 3875/3864,limit is 255/255 reducing
如果有人有 ffmpeg 4.3 的解决方案,请帮忙
这是上面命令的日志,请检查
ffmpeg version 4.3.1 copyright (c) 2000-2020 the FFmpeg developers
built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-23)
configuration: --enable-openssl
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
Input #0,mov,mp4,m4a,3gp,3g2,mj2,from 'input.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isom
Duration: 00:09:00.67,start: 0.000000,bitrate: 218 kb/s
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661),yuv420p,322x400 [SAR 3875:3864 DAR 155:192],168 kb/s,24 fps,24 tbr,90k tbn,48 tbc (default)
Stream #0:1(und): Audio: aac (HE-AAC) (mp4a / 0x6134706D),48000 Hz,stereo,fltp,47 kb/s (default)
File 'output.mp4' already exists. Overwrite? [y/N] y
Stream mapping:
Stream #0:0 (h264) -> trim
Stream #0:0 (h264) -> trim
Stream #0:1 (aac) -> atrim
Stream #0:1 (aac) -> atrim
concat:out:v0 -> Stream #0:0 (mpeg4)
concat:out:a0 -> Stream #0:1 (aac)
Press [q] to stop,[?] for help
[mpeg4 @ 0x25c4880] Invalid pixel aspect ratio 3875/3864,limit is 255/255 reducing
Output #0,to 'output.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isom
encoder : Lavf58.45.100
Stream #0:0: Video: mpeg4 (mp4v / 0x7634706D),322x400 [SAR 255:254 DAR 8211:10160],q=2-31,200 kb/s,SAR 3875:3864 DAR 155:192,12288 tbn,24 tbc (default)
Metadata:
encoder : Lavc58.91.100 mpeg4
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
Stream #0:1: Audio: aac (LC) (mp4a / 0x6134706D),128 kb/s (default)
Metadata:
encoder : Lavc58.91.100 aac
frame= 2208 fps=566 q=16.1 Lsize= 3970kB time=00:01:32.01 bitrate= 353.5kbits/s speed=23.6x
video:2480kB audio:1442kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.204748%
[aac @ 0x25d9180] Qavg: 215.673
解决方法
MPEG-4 Part 2 视频很旧
您的 ffmpeg
未编译为支持任何 H.264 编码器,因此它被迫使用名为 mpeg4 的编码器,该编码器输出旧格式的 MPEG-4 Part 2 视频。这是在 H.264 之前常见的旧格式。
您的设备/播放器/应用程序/浏览器可能不支持 MPEG-4 Part 2 视频。
改为输出 H.264。
解决方案
-
Download an already compiled
ffmpeg
有你需要的。将其放入您的PATH
(请参阅 FAQ),或在您的脚本中提供新ffmpeg
的完整路径。 -
或者用
ffmpeg
重新编译--enable-gpl --enable-libx264
。见FFmpeg Wiki: Compile & Install FFmpeg on CentOS/RHEL/Red Hat。