HTTP直播需要仅音频链接。我现在使用 FFMPEG 中的分段器来播放视频,效果很好。但是,当提供音频文件时,分段器似乎不起作用,只创建一个片段。
对FFMPEG进行分段的调用是:
ffmpeg -i data/media/1/2/encoded.mp3 -y -c copy -flags global_header -map 0 -f 段 -segment_time 10 -segment_list data/media/1/2/fileList.txt -segment_format libmp3lame data/media/1/2/segment_%05d.mp3
我确实输入了 -segment_format 'libmp3lame',但它似乎没有区别。
第一步是编码,这是臭虫输出:
20:11:36,158 DEBUG ~ FFMPEG: ffmpeg version 0.10.2.git-d3d5e84 Copyright (c) 2000-2012 the FFmpeg developers
20:11:36,158 DEBUG ~ FFMPEG: built on May 2 2012 19:00:38 with clang 3.0 (tags/Apple/clang-211.10.1)
20:11:36,158 DEBUG ~ FFMPEG: configuration: --prefix=/opt/local --enable-gpl --enable-postproc --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libdirac --enable-libschroedinger --enable-libopenjpeg --enable-libmodplug --enable-libxvid --enable-libx264 --enable-libvpx --enable-libspeex --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/clang --arch=x86_64 --enable-yasm
20:11:36,158 DEBUG ~ FFMPEG: libavutil 51. 44.100 / 51. 44.100
20:11:36,158 DEBUG ~ FFMPEG: libavcodec 54. 12.100 / 54. 12.100
20:11:36,158 DEBUG ~ FFMPEG: libavformat 54. 3.100 / 54. 3.100
20:11:36,158 DEBUG ~ FFMPEG: libavdevice 53. 4.100 / 53. 4.100
20:11:36,158 DEBUG ~ FFMPEG: libavfilter 2. 66.101 / 2. 66.101
20:11:36,158 DEBUG ~ FFMPEG: libswscale 2. 1.100 / 2. 1.100
20:11:36,158 DEBUG ~ FFMPEG: libswresample 0. 10.100 / 0. 10.100
20:11:36,158 DEBUG ~ FFMPEG: libpostproc 52. 0.100 / 52. 0.100
20:11:36,162 DEBUG ~ FFMPEG: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'data/media/1/1/test.m4a':
20:11:36,162 DEBUG ~ FFMPEG: Metadata:
20:11:36,162 DEBUG ~ FFMPEG: major_brand : mp42
20:11:36,162 DEBUG ~ FFMPEG: minor_version : 1
20:11:36,163 DEBUG ~ FFMPEG: compatible_brands: mp42mp41
20:11:36,163 DEBUG ~ FFMPEG: creation_time : 2011-12-07 18:53:04
20:11:36,163 DEBUG ~ FFMPEG: Duration: 00:00:24.20, start: 0.000000, bitrate: 40 kb/s
20:11:36,163 DEBUG ~ FFMPEG: Stream #0:0(eng): Audio: aac (mp4a / 0x6134706D), 22050 Hz, stereo, s16, 39 kb/s
20:11:36,163 DEBUG ~ FFMPEG: Metadata:
20:11:36,163 DEBUG ~ FFMPEG: creation_time : 2011-12-07 18:53:04
20:11:36,163 DEBUG ~ FFMPEG: handler_name : Apple Sound Media Handler
20:11:36,170 DEBUG ~ FFMPEG: [mpegts @ 0x7fe4c404d000] muxrate VBR, pcr every 4 pkts, sdt every 200, pat/pmt every 40 pkts
20:11:36,171 DEBUG ~ FFMPEG: Output #0, mpegts, to '/Users/Luuk/Documents/Java/idoms-server/data/media/1/2/encoded.mp3':
20:11:36,171 DEBUG ~ FFMPEG: Metadata:
20:11:36,171 DEBUG ~ FFMPEG: major_brand : mp42
20:11:36,171 DEBUG ~ FFMPEG: minor_version : 1
20:11:36,171 DEBUG ~ FFMPEG: compatible_brands: mp42mp41
20:11:36,171 DEBUG ~ FFMPEG: creation_time : 2011-12-07 18:53:04
20:11:36,171 DEBUG ~ FFMPEG: encoder : Lavf54.3.100
20:11:36,171 DEBUG ~ FFMPEG: Stream #0:0(eng): Audio: mp3, 48000 Hz, stereo, s16, 64 kb/s
20:11:36,171 DEBUG ~ FFMPEG: Metadata:
20:11:36,171 DEBUG ~ FFMPEG: creation_time : 2011-12-07 18:53:04
20:11:36,171 DEBUG ~ FFMPEG: handler_name : Apple Sound Media Handler
20:11:36,171 DEBUG ~ FFMPEG: Stream mapping:
20:11:36,171 DEBUG ~ FFMPEG: Stream #0:0 -> #0:0 (aac -> libmp3lame)
20:11:36,171 DEBUG ~ FFMPEG: Press [q] to stop, [?] for help
20:11:36,673 DEBUG ~ FFMPEG: size= 109kB time=00:00:12.79 bitrate= 69.5kbits/s
20:11:37,156 DEBUG ~ FFMPEG: size= 209kB time=00:00:24.24 bitrate= 70.7kbits/s
20:11:37,156 DEBUG ~ FFMPEG: video:0kB audio:190kB global headers:0kB muxing overhead 10.301383%
然后接下来是分段(版本 0.10.2 还不能同时执行这两个操作):
20:11:37,211 DEBUG ~ FFMPEG: ffmpeg version 0.10.2.git-d3d5e84 Copyright (c) 2000-2012 the FFmpeg developers
20:11:37,212 DEBUG ~ FFMPEG: built on May 2 2012 19:00:38 with clang 3.0 (tags/Apple/clang-211.10.1)
20:11:37,212 DEBUG ~ FFMPEG: configuration: --prefix=/opt/local --enable-gpl --enable-postproc --enable-swscale --enable-avfilter --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libdirac --enable-libschroedinger --enable-libopenjpeg --enable-libmodplug --enable-libxvid --enable-libx264 --enable-libvpx --enable-libspeex --mandir=/opt/local/share/man --enable-shared --enable-pthreads --cc=/usr/bin/clang --arch=x86_64 --enable-yasm
20:11:37,212 DEBUG ~ FFMPEG: libavutil 51. 44.100 / 51. 44.100
20:11:37,212 DEBUG ~ FFMPEG: libavcodec 54. 12.100 / 54. 12.100
20:11:37,212 DEBUG ~ FFMPEG: libavformat 54. 3.100 / 54. 3.100
20:11:37,212 DEBUG ~ FFMPEG: libavdevice 53. 4.100 / 53. 4.100
20:11:37,212 DEBUG ~ FFMPEG: libavfilter 2. 66.101 / 2. 66.101
20:11:37,212 DEBUG ~ FFMPEG: libswscale 2. 1.100 / 2. 1.100
20:11:37,212 DEBUG ~ FFMPEG: libswresample 0. 10.100 / 0. 10.100
20:11:37,212 DEBUG ~ FFMPEG: libpostproc 52. 0.100 / 52. 0.100
20:11:37,226 DEBUG ~ FFMPEG: [mpegts @ 0x7fccc2049800] max_analyze_duration 5000000 reached at 5016000
20:11:37,226 DEBUG ~ FFMPEG: Input #0, mpegts, from '/Users/Luuk/Documents/Java/idoms-server/data/media/1/2/encoded.mp3':
20:11:37,226 DEBUG ~ FFMPEG: Duration: 00:00:24.12, start: 1.376978, bitrate: 71 kb/s
20:11:37,226 DEBUG ~ FFMPEG: Program 1
20:11:37,226 DEBUG ~ FFMPEG: Metadata:
20:11:37,226 DEBUG ~ FFMPEG: service_name : Service01
20:11:37,226 DEBUG ~ FFMPEG: service_provider: FFmpeg
20:11:37,226 DEBUG ~ FFMPEG: Stream #0:0[0x100](eng): Audio: mp3 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16, 64 kb/s
20:11:37,226 DEBUG ~ FFMPEG: Output #0, segment, to '/Users/Luuk/Documents/Java/idoms-server/data/media/1/2/segment_%05d.mp3':
20:11:37,226 DEBUG ~ FFMPEG: Metadata:
20:11:37,226 DEBUG ~ FFMPEG: encoder : Lavf54.3.100
20:11:37,226 DEBUG ~ FFMPEG: Stream #0:0(eng): Audio: mp3 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, 64 kb/s
20:11:37,226 DEBUG ~ FFMPEG: Stream mapping:
20:11:37,226 DEBUG ~ FFMPEG: Stream #0:0 -> #0:0 (copy)
20:11:37,226 DEBUG ~ FFMPEG: Press [q] to stop, [?] for help
20:11:37,238 DEBUG ~ FFMPEG: size= 0kB time=00:00:24.28 bitrate= 0.0kbits/s
20:11:37,238 DEBUG ~ FFMPEG: video:0kB audio:190kB global headers:0kB muxing overhead -100.000000%
FFMPEG中的一个错误。已提交错误:http://ffmpeg.org/trac/ffmpeg/ticket/1290