2013-02-23 1318 views
0

这必须是一个简单的问题,但我有FFMPEG创建的M3U8文件的困难,因为它包含文件的绝对路径,而不仅仅是文件名需要。我试图在编码时查看流,这似乎是最后一道障碍。ffmpeg m3u8段文件和文件名的相对路径

我FFmpeg的命令(忽略逗号):

ffmpeg, -i, /Users/User/Documents/Java/server/data/media/1/1/Promo-2013.mov, -dn, -y, -f, mpegts, -c:a, libfdk_aac, -strict, -2, -ar, 48000, -b:a, 128000, -s, 640x360, -c:v, libx264, -b:v, 700000, -aspect, 640:360, -r, 25, -level, 3.0, -vprofile, baseline, -flags, +loop, -cmp, chroma, -coder, 0, -me_range, 16, -keyint_min, 25, -sc_threshold, 40, -i_qfactor, 0.71, -bt, 200k, -maxrate, 700000, -bufsize, 700000, -rc_eq, 'blurCplx^(1-qComp)', -qcomp, 0.6, -qmin, 10, -qmax, 51, -qdiff, 4, -level, 30, -g, 30, -async, 2, -partitions, +parti4x4+partp8x8+partb8x8, -subq, 5, -trellis, 1, -refs, 1, -vbsf, h264_mp4toannexb, -flags, -global_header, -map, 0, -f, segment, -segment_time, 10, -segment_list, /Users/User/Documents/Java/server/data/media/1/3/prog_index.m3u8, -segment_list_flags, +live, -segment_format, mpegts, /Users/User/Documents/Java/server/data/media/1/3/segment_%05d.ts 

得到的文件是:

#EXTM3U 
#EXT-X-VERSION:3 
#EXT-X-MEDIA-SEQUENCE:0 
#EXT-X-ALLOW-CACHE:YES 
#EXT-X-TARGETDURATION:12 
#EXTINF:10.005333, 
/Users/User/Documents/Java/server/data/media/1/10/segment_00000.ts 
#EXTINF:11.952000, 
/Users/User/Documents/Java/server/data/media/1/10/segment_00001.ts 
#EXTINF:10.002667, 
/Users/User/Documents/Java/server/data/media/1/10/segment_00002.ts 
#EXTINF:10.008000, 
/Users/User/Documents/Java/server/data/media/1/10/segment_00003.ts 
#EXTINF:0.266667, 
/Users/User/Documents/Java/server/data/media/1/10/segment_00004.ts 
#EXT-X-ENDLIST 

这一切都完美的作品,但我只想例如'segment_00000.ts,而不是完整的绝对路径,因为这对于实况流无用。由于这是一个非常普通的应用程序,我必须做一些错误的事情。

回答

0

我想通了,我需要改变流程生成器的工作目录。认为这将是简单的事情!

ProcessBuilder pb = new ProcessBuilder(command); 
pb.directory(new File(destinationDir)); 
pb.redirectErrorStream(true); 
Process pr = pb.start();