2014-11-21 63 views
0

我在播放只有音频的Android上播放HLS时遇到困难。该流将播放第一个视频片段,然后转换为仅音频流。下面是一个示例链路https://clipter.com/c/aymels8/hls.m3u8Android HLS首先播放段然后播放音频

hls.m3u8

#EXTM3U 
#EXT-X-VERSION:3 
#EXT-X-PLAYLIST-TYPE:VOD 
#EXT-X-TARGETDURATION:9 
#EXT-X-ALLOW-CACHE:YES 
#EXTINF:8.5, 
https://d3ilpkc014v0xn.cloudfront.net/f5305de24/2103cb31c3078eb5edd5c325108f6d6f.ts?1416176849 
#EXTINF:7.33, 
https://d3ilpkc014v0xn.cloudfront.net/f5305de24/1214ef63a031e3d3229893fdb60eea86.ts?1416176848 
#EXTINF:8.5, 
https://d3ilpkc014v0xn.cloudfront.net/f5305de24/99c47c49548521b0fff05119a5c63908.ts?1416176889 
#EXTINF:8.43, 
https://d3ilpkc014v0xn.cloudfront.net/f5305de24/143acefc2149f2572ddcc08abb705736.ts?1416176988 
#EXTINF:4.43, 
https://d3ilpkc014v0xn.cloudfront.net/f5305de24/11c92b5084971e0cf4768f958e97f936.ts?1416177431 
#EXTINF:6.9, 
https://d3ilpkc014v0xn.cloudfront.net/f5305de24/10ab810169fb684469f736a53f2cba3a.ts?1416177545 
#EXTINF:8.57, 
https://d3ilpkc014v0xn.cloudfront.net/f5305de24/88b037af27757e4805d7f1ed0496cbb8.ts?1416178434 
#EXTINF:2.1, 
https://d3ilpkc014v0xn.cloudfront.net/f5305de24/4a8cda13ea40228de4638dee9985b8b0.ts?1416178513 
#EXTINF:8.47, 
https://d3ilpkc014v0xn.cloudfront.net/f5305de24/e6fa0135987c86d323f1e994bcd2b429.ts?1416179772 
#EXTINF:8.38, 
https://d3ilpkc014v0xn.cloudfront.net/f5305de24/9a08aba19b45601c83854216bb07a6b6.ts?1416604373 
#EXT-X-ENDLIST 

从ffprobe输出

ffprobe version 2.3.3 Copyright (c) 2007-2014 the FFmpeg developers 
    built on Aug 25 2014 19:47:15 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) 
    configuration: --prefix=/usr/local/Cellar/ffmpeg/2.3.3 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid 
    libavutil  52. 92.100/52. 92.100 
    libavcodec  55. 69.100/55. 69.100 
    libavformat 55. 48.100/55. 48.100 
    libavdevice 55. 13.102/55. 13.102 
    libavfilter  4. 11.100/4. 11.100 
    libavresample 1. 3. 0/1. 3. 0 
    libswscale  2. 6.100/2. 6.100 
    libswresample 0. 19.100/0. 19.100 
    libpostproc 52. 3.100/52. 3.100 
Input #0, mpegts, from '2103cb31c3078eb5edd5c325108f6d6f.ts?1416176849': 
    Duration: 00:00:08.53, start: 1.400000, bitrate: 1236 kb/s 
    Program 1 
    Metadata: 
     service_name : Service01 
     service_provider: FFmpeg 
    Stream #0:0[0x100]: Video: h264 (Constrained Baseline) ([27][0][0][0]/0x001B), yuv420p, 480x480, 30 fps, 30 tbr, 90k tbn, 60 tbc 
    Stream #0:1[0x101](und): Audio: aac ([15][0][0][0]/0x000F), 44100 Hz, mono, fltp, 67 kb/s 

回答

1

这是由每个URL后加入#EXT-X-DISCONTINUITY标签解决。音频继续播放和视频停止的原因是因为每个视频片段具有相同的开始时间1.4(遗憾的是,在我的应用程序中,我无法更改该值)。有关更多详细信息,请参见https://tools.ietf.org/html/draft-pantos-http-live-streaming-13