Java h264转mp4

1、pom

<dependency>
            <groupId>com.googlecode.mp4parser</groupId>
            <artifactId>isoparser</artifactId>
            <version>1.1.22</version>
        </dependency>

2、code

import cn.hutool.core.lang.UUID;
import com.coremedia.iso.boxes.Container;
import com.googlecode.mp4parser.FileDataSourceImpl;
import com.googlecode.mp4parser.authoring.Movie;
import com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder;
import com.googlecode.mp4parser.authoring.tracks.h264.H264TrackImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import java.io.File;
import java.io.FileOutputStream;
import java.nio.channels.FileChannel;

@Component
@Slf4j
public class H264Job {

    @PostConstruct
    public void done() {
        try {
            String fromPath = "E://abc/1.h264";
            String uuid = UUID.randomUUID().toString().replace("-", "");
            String toPath = "E://abc/" + uuid + ".mp4";

            H264TrackImpl h264TrackImpl = new H264TrackImpl(new FileDataSourceImpl(fromPath));
            Movie movie = new Movie();
            movie.addTrack(h264TrackImpl);
            Container mp4f = new DefaultMp4Builder().build(movie);
            FileChannel fChannel = new FileOutputStream(new File(toPath)).getChannel();
            mp4f.writeContainer(fChannel);
            fChannel.close();

            log.info("h264 change to mp4 done => {}", toPath);
        } catch (Exception e) {
            log.error("h264 job", e);
        }

    }
}

 

posted @ 2024-01-03 10:04  都是城市惹的祸  阅读(18)  评论(0)    收藏  举报