一般下载HLS(.m3u8)串流时,只需要FFMPEG以下指令就可以下载
ffmpeg -i "http://x.x/123.m3u8" -c copy "123.flv"
但某些HLS(.m3u8)串流时,似乎是碰到22050Hz的AAC音讯,就会出现以下错误
[flv @ 02e1d540] Malformed AAC bitstream detected: use the audio
bitstream filter 'aac_adtstoasc' to fix it ('-bsf:a aac_adtstoasc'
option with ffmpeg) av_interleaved_write_frame(): Invalid data found
when processing input
提示指令要加上"-bsf:a aac_adtstoasc",确实加入就可以顺利下载
尝试结果是加入影像可正确播放,音讯却完全无声、杂音或咻一下的声音
网络上的解法,有的说要修改FFMPEG原始程式码再重新编译程式
http://blog.gmane.org/gmane.comp.video.mencoder.user/month=20130801
https://trac.ffmpeg.org/ticket/3175
http://lists.ffmpeg.org/pipermail/ffmpeg-devel/2014-May/157791.html
没有尝试修改程式,保留
日本2ch讨论区解法,是将FFMPEG从包装成flv改由包装成mkv格式
http://peace.2ch.net/test/read.cgi/esite/1430937992/180
ffmpeg -i "http://x.x/123.m3u8"
-vcodec copy -bsf:a aac_adtstoasc -copyts -y "123.mkv"
尝试结果是可行的,无论下载或是播放都非常顺利
虽然日本方法可行,依然相当希望能用-c copy下载FLV档案
不知道有没有什么解法呢?重新编译FFMPEG?