We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
描述问题
我用下面提到的这段代码来切割视频,使用了‘-c copy’参数,目的是为了加快切割视频的速度。
但现在遇到一个问题,比如视频时长为7s,我从视频第3s开始截取,截取4s时长,
将上面切割后的结果视频,通过fetch方式获取后,MP4Clip 的api mp4Clip.tick(0)得到的视频帧是从原视频的第0秒开始播放的,但应该是要从原视频的第3s开始播放才对。
我也用本地播放器试了下,视频就是从原视频第3s开始播放,是对的。
复现步骤
const ffmpeg = require('fluent-ffmpeg'); function cutVideo(inputPath, outputPath, startTime, duration) { return new Promise((resolve, reject) => { ffmpeg(inputPath) .setStartTime(startTime) // 设置开始时间 .setDuration(duration) // 设置持续时间 .outputOptions('-c copy') // 使用流复制,避免重新编码,保持视频质量和速度 .on('start', (command) => { console.log('cutVideo.command:', command); }) .on('error', (err) => { console.error('cutVideo.发生错误:', err.message); reject(err); }) .on('end', () => { console.log('cutVideo.裁剪完成:', outputPath); resolve(); }) .save(outputPath); // 保存输出文件 }); } const startTime = 3; const duration = 4; const inputPath = "./test.mp4" const outputPath = `./output.mp4`; await cutVideo(inputPath, outputPath, startTime, duration);
重现问题的步骤:
期望行为
使用mp4clip,可以拿到切割后的结果视频的第一帧(对应原视频的第3s的画面)。 在我们的场景里,使用‘-c copy’参数必须保留(目的是为了加快切割视频的速度)。
视频文件[可选] test.zip
环境信息
The text was updated successfully, but these errors were encountered:
ffmpeg -c copy 不会重编码视频,它将剪辑信息存储在 edts box 中;
-c copy
edts box
而 MP4Clip 不会处理 edts box,也暂无计划去解析它。 因为MP4 格式非常复杂,如果要完全支持,MP4Clip 将会非常复杂,类似视频播放器。
不过 MP4Clip 可以考虑抛出 moov box 的原始数据,供调用者支持自己的特殊场景?
Sorry, something went wrong.
@hughfenghen 好的大佬 在下面这个网站打开裁切后视频是从0s开始播放的https://www.onlinemp4parser.com,
ffmpeg -c copy 不会重编码视频,它将剪辑信息存储在 edts box 中; 而 MP4Clip 不会处理 edts box,也暂无计划去解析它。 因为MP4 格式非常复杂,如果要完全支持,MP4Clip 将会非常复杂,类似视频播放器。 不过 MP4Clip 可以考虑抛出 moov box 的原始数据,供调用者支持自己的特殊场景?
大佬,不需要全部解析,是否可以将这个开始时长偏移量返回呢?原始数据如果也能一并返回的话会很好。
ffmpeg -c copy 不会重编码视频,它将剪辑信息存储在 edts box 中; 而 MP4Clip 不会处理 edts box,也暂无计划去解析它。 因为MP4 格式非常复杂,如果要完全支持,MP4Clip 将会非常复杂,类似视频播放器。 不过 MP4Clip 可以考虑抛出 moov box 的原始数据,供调用者支持自己的特殊场景? 大佬,不需要全部解析,是否可以将这个裁切偏移量返回呢?原始数据如果也能一并返回的话会很好。
大佬,不需要全部解析,是否可以将这个裁切偏移量返回呢?原始数据如果也能一并返回的话会很好。
No branches or pull requests
描述问题
我用下面提到的这段代码来切割视频,使用了‘-c copy’参数,目的是为了加快切割视频的速度。
但现在遇到一个问题,比如视频时长为7s,我从视频第3s开始截取,截取4s时长,
将上面切割后的结果视频,通过fetch方式获取后,MP4Clip 的api mp4Clip.tick(0)得到的视频帧是从原视频的第0秒开始播放的,但应该是要从原视频的第3s开始播放才对。
我也用本地播放器试了下,视频就是从原视频第3s开始播放,是对的。
复现步骤
重现问题的步骤:
期望行为
使用mp4clip,可以拿到切割后的结果视频的第一帧(对应原视频的第3s的画面)。
在我们的场景里,使用‘-c copy’参数必须保留(目的是为了加快切割视频的速度)。
视频文件[可选]
test.zip
环境信息
The text was updated successfully, but these errors were encountered: