2013-02-23 1317 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();