對於我的視頻隱寫術項目(在Java中),我需要將順序PNG編碼到電影文件中。我試圖xuggler,但我得到的壓縮。(由於其數據隱藏在PNG圖像的LSB的迷路下一次我從視頻中提取幀)png圖像文件到視頻(無損)
因爲我需要需要中檢索隱藏的數據後,我需要找到一個過程,以無損的方式將png圖像編碼爲視頻(首選格式:avi)。新視頻的尺寸對我來說不是問題。
希望如果有人能指導我或推薦一個有用的不同的java庫來做到這一點。
如果需要,我可以發佈我的java代碼。
對於我的視頻隱寫術項目(在Java中),我需要將順序PNG編碼到電影文件中。我試圖xuggler,但我得到的壓縮。(由於其數據隱藏在PNG圖像的LSB的迷路下一次我從視頻中提取幀)png圖像文件到視頻(無損)
因爲我需要需要中檢索隱藏的數據後,我需要找到一個過程,以無損的方式將png圖像編碼爲視頻(首選格式:avi)。新視頻的尺寸對我來說不是問題。
希望如果有人能指導我或推薦一個有用的不同的java庫來做到這一點。
如果需要,我可以發佈我的java代碼。
如果您從www.processing.org下載處理框架,您可以編寫一個非常簡單的java程序來讀取您的圖像並將它們寫入mov文件,如果您使用ANIMATION編解碼器並指定無損,它將完全無損。
您可以將一個PNG序列複合到一個MP4文件中,而無需轉碼(保留精確的原始圖像)。要做到這一點在純Java應用JCodec(http://jcodec.org):
public class SequenceMuxer {
private SeekableByteChannel ch;
private CompressedTrack outTrack;
private int frameNo;
private MP4Muxer muxer;
private Size size;
public SequenceMuxer(File out) throws IOException {
this.ch = NIOUtils.writableFileChannel(out);
// Muxer that will store the encoded frames
muxer = new MP4Muxer(ch, Brand.MP4);
// Add video track to muxer
outTrack = muxer.addTrackForCompressed(TrackType.VIDEO, 25);
}
public void encodeImage(File png) throws IOException {
if (size == null) {
BufferedImage read = ImageIO.read(png);
size = new Size(read.getWidth(), read.getHeight());
}
// Add packet to video track
outTrack.addFrame(new MP4Packet(NIOUtils.fetchFrom(png), frameNo, 25, 1, frameNo, true, null, frameNo, 0));
frameNo++;
}
public void finish() throws IOException {
// Push saved SPS/PPS to a special storage in MP4
outTrack.addSampleEntry(MP4Muxer.videoSampleEntry("png ", size, "JCodec"));
// Write MP4 header and finalize recording
muxer.writeHeader();
NIOUtils.closeQuietly(ch);
}
}
要使用它是這樣的:
public static void main(String[] args) throws IOException {
SequenceMuxer encoder = new SequenceMuxer(new File("video_png.mp4"));
for (int i = 1; i < 100; i++) {
encoder.encodeImage(new File(String.format("img%08d.png", i)));
}
encoder.finish();
}
,你才能把它變成電影,使得它的stegged? – Lizz 2012-12-04 23:43:51