ffmpeg 4.3 多部分 trim 问题
ffmpeg 4.3 multipart trim issue
我正在尝试使用 ffmpeg 4.3trim 从单个视频中分割
这是我使用的命令
`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, mp4, to 'output.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: mp42isom
encoder : Lavf58.45.100
Stream #0:0: Video: mpeg4 (mp4v / 0x7634706D), yuv420p, 322x400 [SAR 255:254 DAR 8211:10160], q=2-31, 200 kb/s, SAR 3875:3864 DAR 155:192, 24 fps, 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), 48000 Hz, stereo, fltp, 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 第 2 部分视频是旧的
您的 ffmpeg
未编译为包括对任何 H.264 编码器的支持,因此它被强制使用名为 mpeg4 的编码器,该编码器输出旧格式 MPEG- 4 第 2 部分视频。这是一种在 H.264 之前很常见的传统格式。
您的 device/player/app/browser 可能不支持 MPEG-4 Part 2 视频。
改为输出 H.264。
解决方案
Download an already compiled
ffmpeg
that has what you need. Put it in yourPATH
(see FAQ),或在脚本中提供新ffmpeg
的完整路径。或用
--enable-gpl --enable-libx264
重新编译ffmpeg
。参见 FFmpeg Wiki: Compile & Install FFmpeg on CentOS/RHEL/Red Hat。