Comments (11)
看起来和m3u8无关 因为我使用另外的m3u8源是可用的
http://222.207.48.30/hls/startv.m3u8
另外,做下记录,在日志中有这么几句日志
Could not find codec parameters for stream 1 (Audio: aac ([15][0][0][0] / 0x000F), 0 channels, fltp): unspecified sample rate
.....
I/IJKMEDIA(11627): Stream #0:1
I/IJKMEDIA(11627): : Audio: aac ([15][0][0][0] / 0x000F), 0 channels, fltp
似乎是无法找到audio的采样信息, 但是我使用mac上的ffprobe是可以获取的
后面我定位下原因,争取解决下
播放后的日志如下: 作为后续除错定位使用
D/IJKMEDIA(11627): IjkMediaPlayer_native_setup
I/IJKMEDIA(11627): av_version_info: ff3.4--ijk0.8.7--20180103--001
I/IJKMEDIA(11627): ijk_version_info: k0.8.8-15-ge7fde118
D/IJKMEDIA(11627): ffpipeline_create_from_android()
D/IJKMEDIA(11627): ijkmp_set_inject_opaque(0x26e6)
D/IJKMEDIA(11627): ijkmp_set_inject_opaque()=void
D/IJKMEDIA(11627): ijkmp_set_ijkio_inject_opaque(0x26e6)
D/IJKMEDIA(11627): ijkmp_set_ijkio_inject_opaque()=void
D/IJKMEDIA(11627): ijkmp_android_set_mediacodec_select_callback()
D/IJKMEDIA(11627): ffpipeline_set_mediacodec_select_callback
D/IJKMEDIA(11627): ijkmp_android_set_mediacodec_select_callback()=void
D/IJKMEDIA(11627): IjkMediaPlayer_setOption
D/IJKMEDIA(11627): IjkMediaPlayer_setOptionLong
I/chatty (11627): uid=10085(com.example.ijkplayer_example) identical 6 lines
D/IJKMEDIA(11627): IjkMediaPlayer_setOptionLong
D/IJKMEDIA(11627): IjkMediaPlayer_setVideoSurface
D/IJKMEDIA(11627): ijkmp_set_android_surface(surface=0xfff10860)
D/IJKMEDIA(11627): ffpipeline_set_surface()
D/IJKMEDIA(11627): ijkmp_set_android_surface(surface=0xfff10860)=void
I/flutter (11627): (d)Ijk:onTextureChange 3
I/flutter (11627): (d)Ijk:id = 3 net uri = https://media001.geekbang.org/f433fd1ce5e84d27b1101f0dad72a126/de563bb4aba94b5f95f448b33be4dd9f-9aede6861be944d696fe365f3a33b7b4-sd.m3u8 ,headers = {}
D/IJKMEDIA(11627): IjkMediaPlayer_setVolume
D/IJKMEDIA(11627): ijkmp_android_set_volume(1.000000, 1.000000)
D/IJKMEDIA(11627): ffpipeline_set_volume
D/IJKMEDIA(11627): ijkmp_android_set_volume(1.000000, 1.000000)=void
D/IJKMEDIA(11627): IjkMediaPlayer_setDataSourceAndHeaders
V/IJKMEDIA(11627): setDataSource: path https://media001.geekbang.org/f433fd1ce5e84d27b1101f0dad72a126/de563bb4aba94b5f95f448b33be4dd9f-9aede6861be944d696fe365f3a33b7b4-sd.m3u8
D/IJKMEDIA(11627): ijkmp_set_data_source(url="https://media001.geekbang.org/f433fd1ce5e84d27b1101f0dad72a126/de563bb4aba94b5f95f448b33be4dd9f-9aede6861be944d696fe365f3a33b7b4-sd.m3u8")
D/IJKMEDIA(11627): ijkmp_set_data_source(url="https://media001.geekbang.org/f433fd1ce5e84d27b1101f0dad72a126/de563bb4aba94b5f95f448b33be4dd9f-9aede6861be944d696fe365f3a33b7b4-sd.m3u8")=0
D/IJKMEDIA(11627): IjkMediaPlayer_prepareAsync
D/IJKMEDIA(11627): ijkmp_prepare_async()
I/IJKMEDIA(11627): ===== versions =====
I/IJKMEDIA(11627): ijkplayer : k0.8.8-15-ge7fde118
I/IJKMEDIA(11627): FFmpeg : ff3.4--ijk0.8.7--20180103--001
I/IJKMEDIA(11627): libavutil : 55.78.100
I/IJKMEDIA(11627): libavcodec : 57.107.100
I/IJKMEDIA(11627): libavformat : 57.83.100
I/IJKMEDIA(11627): libswscale : 4.8.100
I/IJKMEDIA(11627): libswresample: 2.9.100
I/IJKMEDIA(11627): ===== options =====
I/IJKMEDIA(11627): player-opts : reconnect = 5
I/IJKMEDIA(11627): player-opts : framedrop = 5
I/IJKMEDIA(11627): SDL_RunThread: [11861] ff_msg_loop
I/IJKMEDIA(11627): player-opts : enable-accurate-seek = 1
D/IJKMEDIA(11627): message_loop
I/IJKMEDIA(11627): player-opts : mediacodec = 1
I/IJKMEDIA(11627): format-opts : ijkapplication = -227734912
I/IJKMEDIA(11627): format-opts : ijkiomanager = -669541888
I/IJKMEDIA(11627): format-opts : fflags = fastseek
I/IJKMEDIA(11627): format-opts : analyzemaxduration = 100
I/IJKMEDIA(11627): format-opts : analyzeduration = 1
I/IJKMEDIA(11627): format-opts : probesize = 10240
I/IJKMEDIA(11627): format-opts : flush_packets = 1
I/IJKMEDIA(11627): ===================
D/IJKMEDIA(11627): FFP_MSG_FLUSH:
I/IJKMEDIA(11627): SDL_RunThread: [11862] ff_vout
D/IJKMEDIA(11627): ijkmp_prepare_async()=0
I/IJKMEDIA(11627): SDL_RunThread: [11863] ff_read
I/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): onNativeInvoke 1
I/NotifyChannel(11627): onNativeInvoke 1
I/IJKMEDIA(11627): Hit DNS cache hostname = media001.geekbang.org
I/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): onNativeInvoke 131073
I/NotifyChannel(11627): onNativeInvoke 131073
I/flutter (11627): IjkMediaControllerMixin attach [GlobalKey#8a1fa]
I/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): onNativeInvoke 131074
I/NotifyChannel(11627): onNativeInvoke 131074
I/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): onNativeInvoke 2
I/NotifyChannel(11627): onNativeInvoke 2
I/IJKMEDIA(11627): Opening 'https://media001.geekbang.org/f433fd1ce5e84d27b1101f0dad72a126/de563bb4aba94b5f95f448b33be4dd9f-b64cf280cabc4d9c202a62095ae10e95-sd-00001.ts' for reading
I/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): onNativeInvoke 1
I/NotifyChannel(11627): onNativeInvoke 1
I/IJKMEDIA(11627): Hit DNS cache hostname = media001.geekbang.org
I/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): onNativeInvoke 131073
I/NotifyChannel(11627): onNativeInvoke 131073
I/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): onNativeInvoke 131074
I/NotifyChannel(11627): onNativeInvoke 131074
I/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): onNativeInvoke 2
I/NotifyChannel(11627): onNativeInvoke 2
E/IJKMEDIA(11627): Option analyzemaxduration not found.
D/IJKMEDIA(11627): FFP_MSG_OPEN_INPUT:
I/NotifyChannel(11627): onInfoListener 10005, extra = 0, isPlaying = false
E/IJKMEDIA(11627): Invalid NAL unit 0, skipping.
W/IJKMEDIA(11627): Stream #0: not enough frames to estimate rate; consider increasing probesize
W/IJKMEDIA(11627): Could not find codec parameters for stream 1 (Audio: aac ([15][0][0][0] / 0x000F), 0 channels, fltp): unspecified sample rate
W/IJKMEDIA(11627): Consider increasing the value for the 'analyzeduration' and 'probesize' options
I/IJKMEDIA(11627): max_frame_duration: 10.000
I/IJKMEDIA(11627): Input #0, hls,applehttp, from 'https://media001.geekbang.org/f433fd1ce5e84d27b1101f0dad72a126/de563bb4aba94b5f95f448b33be4dd9f-9aede6861be944d696fe365f3a33b7b4-sd.m3u8':
D/IJKMEDIA(11627): FFP_MSG_FIND_STREAM_INFO:
I/IJKMEDIA(11627): Duration:
I/IJKMEDIA(11627): 00:04:45.96
I/IJKMEDIA(11627): , start:
I/IJKMEDIA(11627): 1.480000
I/IJKMEDIA(11627): , bitrate:
I/IJKMEDIA(11627): 0 kb/s
I/IJKMEDIA(11627):
I/IJKMEDIA(11627): Program 0
I/IJKMEDIA(11627): Metadata:
I/IJKMEDIA(11627): variant_bitrate :
I/NotifyChannel(11627): onInfoListener 10006, extra = 0, isPlaying = false
I/IJKMEDIA(11627): 0
I/IJKMEDIA(11627):
I/IJKMEDIA(11627): Stream #0:0
I/IJKMEDIA(11627): : Video: h264 ([27][0][0][0] / 0x001B), yuv420p, 1280x720 [SAR 1:1 DAR 16:9]
I/IJKMEDIA(11627): ,
I/IJKMEDIA(11627): 25 tbr,
I/IJKMEDIA(11627): 90k tbn,
I/IJKMEDIA(11627): 50 tbc
I/IJKMEDIA(11627):
I/IJKMEDIA(11627): Metadata:
I/IJKMEDIA(11627): variant_bitrate :
I/IJKMEDIA(11627): 0
I/IJKMEDIA(11627):
I/IJKMEDIA(11627): Stream #0:1
I/IJKMEDIA(11627): : Audio: aac ([15][0][0][0] / 0x000F), 0 channels, fltp
I/IJKMEDIA(11627):
I/IJKMEDIA(11627): Metadata:
I/IJKMEDIA(11627): variant_bitrate :
I/IJKMEDIA(11627): 0
I/IJKMEDIA(11627):
D/IJKMEDIA(11627): ffpipenode_create_video_decoder_from_android_mediacodec()
I/IJKMEDIA(11627): ffpipenode_create_video_decoder_from_android_mediacodec: MediaCodec: H264_HIGH: enabled
I/IJKMEDIA(11627): AMediaFormat: video/avc, 1280x720
D/IJKMEDIA(11627): SDL_AMediaFormatJava_createVideoFormat
E/IJKMEDIA(11627): csd-0: naked
I/IJKMEDIA(11627): amc: rotate notify: 0
D/IJKMEDIA(11627): ffpipeline_select_mediacodec_l
D/IJKMEDIA(11627): FFP_MSG_VIDEO_ROTATION_CHANGED: 0
I/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): onSelectCodec: mime=video/avc, profile=100, level=31
I/NotifyChannel(11627): onInfoListener 10001, extra = 0, isPlaying = false
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.aac.decoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): mime: audio/mp4a-latm
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.amrnb.decoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): mime: audio/3gpp
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.amrwb.decoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): mime: audio/amr-wb
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.flac.decoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): mime: audio/flac
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.g711.alaw.decoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): mime: audio/g711-alaw
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.g711.mlaw.decoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): mime: audio/g711-mlaw
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.gsm.decoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): mime: audio/gsm
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.mp3.decoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): mime: audio/mpeg
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.opus.decoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): mime: audio/opus
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.raw.decoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): mime: audio/raw
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.vorbis.decoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): mime: audio/vorbis
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.aac.encoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.amrnb.encoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.amrwb.encoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.flac.encoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.h264.decoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): mime: video/avc
I/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): candidate codec: OMX.google.h264.decoder rank=200
I/IjkMediaCodecInfo(11627): Unknown Profile Level 52 (524288,65536)
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.h263.decoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): mime: video/3gpp
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.hevc.decoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): mime: video/hevc
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.mpeg4.decoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): mime: video/mp4v-es
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.vp8.decoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): mime: video/x-vnd.on2.vp8
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.vp9.decoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): mime: video/x-vnd.on2.vp9
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.h264.encoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.h263.encoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.mpeg4.encoder
D/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): found codec: OMX.google.vp8.encoder
W/tv.danmaku.ijk.media.player.IjkMediaPlayer(11627): unaccetable codec: OMX.google.h264.decoder
E/IJKMEDIA(11627): mediacodec_select_callback: onSelectCodec failed
E/IJKMEDIA(11627): amc: no suitable codec
I/IJKMEDIA(11627): VideoCodec: avcodec, h264
W/IJKMEDIA(11627): fps: 25.000000 (normal)
D/IJKMEDIA(11627): FFP_MSG_COMPONENT_OPEN:
D/IJKMEDIA(11627): FFP_MSG_VIDEO_SIZE_CHANGED: 1280, 720
D/IJKMEDIA(11627): FFP_MSG_SAR_CHANGED: 1, 1
I/IJKMEDIA(11627): SDL_RunThread: [11872] ff_video_dec
D/IJKMEDIA(11627): ijkmp_get_msg: FFP_MSG_PREPARED
D/IJKMEDIA(11627): FFP_MSG_PREPARED:
D/IJKMEDIA(11627): FFP_MSG_VIDEO_ROTATION_CHANGED: 0
I/NotifyChannel(11627): onInfoListener 10007, extra = 0, isPlaying = true
I/NotifyChannel(11627): prepare {duration=285.96, tcpSpeed=225844, isPlaying=true, outputFps=0.0, currentPosition=0.0, width=1280, degree=0, height=720}
I/NotifyChannel(11627): completion buffer update {duration=285.96, tcpSpeed=274102, isPlaying=true, outputFps=0.0, currentPosition=0.0, width=1280, degree=0, height=720} 0
I/NotifyChannel(11627): onInfoListener 10001, extra = 0, isPlaying = true
from flutter_ijkplayer.
iOS 经测试 播放正常
from flutter_ijkplayer.
提供一个公网可用的流地址
from flutter_ijkplayer.
提供一个公网可用的流地址
from flutter_ijkplayer.
@CaiJingLong 其实我在之前的使用过程中也遇到了这个问题我用ffmpeg 转出来的m3u8确实没声音 用其他网盘的m3u8却正常 http://www.0-php.com/11/playlist.m3u8
from flutter_ijkplayer.
https://156zy.suboyouku.com/2019/05/04/65Y0YxOc4ShcFAPa/playlist.m3u8 我现在也遇到了这个问题(提供一个资源站的视频链接),但是其他视频的链接大部分都是正常的
from flutter_ijkplayer.
@CaiJingLong 几乎所有的m3u8都没有声音。
from flutter_ijkplayer.
同样.我也是没声音 但是例子里面的mp4正常。
from flutter_ijkplayer.
@cctanfujun @0-php @yhsj0919 @jendy2012
各位可以尝试一下新的0.2.7版本
提供一个公网可用的流地址
我使用这个连接中的m3u8测试有声音了
from flutter_ijkplayer.
这个bug是由于我搜索到一些优化选项会影响m3u8的声音, 播放器内部的原因不明
我https://www.jianshu.com/p/843c86a9e9ad
我在#79中把一些选项关闭了, 可能后续的一些播放表现会和从前不太一样, 主要应该体现在网络资源的播放上.
如果对于选项有需要,请参考readme中的自定option章节的说明.
from flutter_ijkplayer.
感謝兄弟分享經驗。
我這裡也遇到類似的狀況。
在我的程式裡用同樣的Option設置,播放RTSP stream效果很好,但是播放檔案的時候,則會出現有影像但沒有聲音的狀況。
修正方案是把針對RTSP stream播放的優化選項關閉,聲音就完全正常了。
from flutter_ijkplayer.
Related Issues (20)
- [Need help]如何判断全屏或者非全屏
- [Need help] var dataSource = DataSource.network("", headers:<String,String>{}); not working HOT 1
- [Bug]ios seekto定位不准确,会播放到定位的前几秒
- Android 播放短视频卡死! HOT 2
- 请问如何设置铺满屏幕的播发模式
- [Need help] Flutter 2 updated
- 画中画怎么实现?
- Is this project dead?
- [Feature request]Flutter都2.0+了,求求你快更新吧 HOT 1
- 优化资源初始化
- [Bug] pod install报错 HOT 11
- [Feature request] iOS显示系统音量条
- [Need help] rtmp流经过重定向处理之后无法正常播放了 报错301:No default whitelist set
- [Bug report] Pod install Fail
- [Bug]rtmpH265播放显示不了画面
- 是否支持G726
- [Need help]
- [Bug report]
- 支持jpeg视频流的播放
- OpenSSL1.0.2版本太低,需要升级
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flutter_ijkplayer.