这一定是一个简单的问题,但我对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 :(得分:0)
我想通了,我需要更改流程构建器的工作目录。认为这将是一件简单的事情!
ProcessBuilder pb = new ProcessBuilder(command);
pb.directory(new File(destinationDir));
pb.redirectErrorStream(true);
Process pr = pb.start();