我无法让FFmpeg将AAC文件转换为HLS块:
cat file.m4a | ffmpeg -y -i pipe:0 -c:a libmp3lame -q:a 0 -map 0:0 -f segment -segment_time 10 -segment_list ./segments.m3u8 -segment_format mpegts -vn ./segment_%03d.ts
这是在Lambda函数中的Node.js中执行的(从AWS S3流式传输-上面的命令行仅用于测试目的)。
我得到的相关错误是:
Stream mapping:
Stream #0:0 -> #0:0 (aac (native) -> mp3 (libmp3lame))
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x397e640] stream 0, offset 0x28: partial file
pipe:0: Invalid data found when processing input
如果我执行-i file.m4a
,则效果很好。这不是一个破坏交易的事情,但是能够使用stdin很好,它可以在MP3和WAV文件中正常工作。
答案 0 :(得分:1)
m4a
是MPEG-4 Part 14(MP4)容器,而不是原始AAC,可能需要查找。如果将mov
原子放置在文件的开头(例如,使用快速启动时),则可以通过管道进行传输,但最好使用input选项。