我有来自两个视频源的数百部电影。一种是 25 fps 的 MP4
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'MAH00607.MP4':
Metadata:
major_brand : MSNV
minor_version : 22675568
compatible_brands: MSNVmp42isom
creation_time : 2017-06-14T20:20:24.000000Z
Duration: 00:00:12.48, start: 0.000000, bitrate: 2795 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709/bt709/iec61966-2-4), 1280x720 [SAR 1:1 DAR 16:9], 2664 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc (default)
Metadata:
creation_time : 2017-06-14T20:20:24.000000Z
handler_name : Video Media Handler
encoder : AVC Coding
Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 127 kb/s (default)
Metadata:
creation_time : 2017-06-14T20:20:24.000000Z
handler_name : Sound Media Handler
Run Code Online (Sandbox Code Playgroud)
其次是 AVI 29.81 fps
[avi @ 0x561e6733c640] non-interleaved AVI
Input #0, avi, from 'V-0018.AVI':
Duration: 00:00:11.04, start: 0.000000, bitrate: 4571 kb/s
Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj422p(pc, bt470bg/unknown/unknown), 640x480, 4515 kb/s, 28.18 fps, 28.18 tbr, 28.18 tbn, 28.18 tbc
Stream #0:1: Audio: pcm_u8 ([1][0][0][0] / 0x0001), 8000 Hz, 1 channels, u8, 64 kb/s
Run Code Online (Sandbox Code Playgroud)
在连接电影之前,我使用此脚本转换它们。我的结果是最终的连续电影时间不正确,并且在 AVI 电影(按顺序排列的第一个)完成后 - 电影冻结。我将尝试使用不同时基的 FFmpeg - Concat 视频和 Mulvya 建议重新编码 avi 文件但没有成功。
你能提出其他解决方案吗?
对于连接视频,有一些属性必须相等。因此,在执行 concat 之前,您最好“规范化”或“格式化”所有输入以共享这些属性:
您应该能够通过在“规范化”ffmpeg 命令行上指定所有这些参数来做到这一点。如果您没有明确指定一个参数,ffmpeg 将尝试从输入流中复制该参数,这将再次为您提供不同的格式。
一个好的开始可能是这样的:
ffmpeg -i %SOURCEFILE% -map 0:0 -map 0:1 -ac 2 -c:a aac -ar 48000 -vf format=yuv420p,scale=1280x720,yadif -video_track_timescale 60000 -c:v libx264 "%OUTPUT%.mp4"
Run Code Online (Sandbox Code Playgroud)
以上未经测试,但它让您大致了解 cmd 的外观。-codec copy 顺便说一句,鉴于您在输入时收到完全未知的文件,您根本无法使用它。
在您的所有输入似乎共享上述所有参数后,您应该能够继续使用 concat。
归档时间: |
|
查看次数: |
2959 次 |
最近记录: |