首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mp4Parser裁剪音频。或者还有其他选择吗?

使用mp4Parser裁剪音频。或者还有其他选择吗?
EN

Stack Overflow用户
提问于 2018-06-05 14:34:34
回答 3查看 458关注 0票数 0

我正在尝试使用mp4Parser裁剪音频。

这有可能吗?

我尝试了ffmpeg,这非常耗时。

我们的应用确实需要视频和音频处理。

对此有什么建议吗?

EN

回答 3

Stack Overflow用户

发布于 2018-06-11 17:41:12

ffmpeg很快。你用的是什么命令?也许你做了ffmpeg代码转换,这是慢的?

关于

代码语言:javascript
复制
 fmpeg -i audiofile.mp3 -ss 3 -t 5 -acodec copy outfile.mp3

这个重新复用从秒3开始,持续5秒到outfile.mp3,非常快。

票数 1
EN

Stack Overflow用户

发布于 2018-06-05 17:51:05

是的,也可以使用mp4Parser和FFMPEG。在FFMPEG中,您必须使用一些命令键来加快处理速度。

你可以看看这个库:

k4l-video-trimmer

票数 0
EN

Stack Overflow用户

发布于 2020-11-27 05:12:08

是的,它可以裁剪音频与mp4parser。

它应该类似于下面的内容

代码语言:javascript
复制
private CroppedTrack getCroppedTrack(Track track, int startTimeMs, int endTimeMs)
{
    long currentSample = 0;
    double currentTime = 0;
    long startSample = -1;
    long endSample = -1;
    double startTime = startTimeMs / 1000;
    double endTime = endTimeMs / 1000;

    for (int i = 0; i < track.getSampleDurations().length; i++)
    {
        if (currentTime <= startTime)
        {
            // current sample is still before the new starttime
            startSample = currentSample;
        }
        if (currentTime <= endTime) {
            // current sample is after the new start time and still before the new endtime
            endSample = currentSample;
        }
        else
        {
            // current sample is after the end of the cropped video
            break;
        }
        currentTime += (double) track.getSampleDurations()[i] / (double) track.getTrackMetaData().getTimescale();
        currentSample++;
    }

    return new CroppedTrack(track, startSample, endSample);
}

使用上述方法根据所需的起点和终点修剪轨迹。

代码语言:javascript
复制
movie.addTrack(getCroppedTrack(track, 0, 8000));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50693534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档