工具:ffmpeg+neroaacenc
输入:audio.flac,双声道24bit
输出:NeroAAC编码的LC-AAC音频audio.m4a,-q 0.4
求命令行写法,谢谢(不知道如何处理24bit)
非常感谢。。完成了。。。06_taro 写了:ffmpeg對aac默認使用的解碼是16bit而不是float,得手動指定解碼精度,然後默認輸出的pcm仍然是s16的,還得手動加上轉為s24的參數…
其實flac->nero aac最簡單的方法就是eac3to:
[syntax lang="winbatch"]eac3to.exe "input.flac" "output.m4a" -quality=0.4[/syntax]
只要把eac3to.exe, libFLAC.dll和neroAacEnc.exe放在同一個文件夾下就行了。
另外再请教一下,其实这个工作我是将一个封装了1个avc和3个flac的mkv,分离出视频流和第一个音频流,音频转为无损,然后再封装成mp4(3个flac实在是太占地方了)06_taro 写了:ffmpeg對aac默認使用的解碼是16bit而不是float,得手動指定解碼精度,然後默認輸出的pcm仍然是s16的,還得手動加上轉為s24的參數…
其實flac->nero aac最簡單的方法就是eac3to:
[syntax lang="winbatch"]eac3to.exe "input.flac" "output.m4a" -quality=0.4[/syntax]
只要把eac3to.exe, libFLAC.dll和neroAacEnc.exe放在同一個文件夾下就行了。
如果沒誤解的話,這裡應該是轉為有損?音频转为无损
之所以偏爱mp4是因为它在IOS上较好的兼容性(虽然IOS的AVPlayer能硬解mkv了,但是拖动时候略蛋疼)06_taro 写了:如果沒誤解的話,這裡應該是轉為有損?音频转为无损
[syntax lang="winbatch"]eac3to "input.mkv" 2:"audio.m4a" -quality=0.4 || ( echo fail to encode audio & goto exit )
ffmpeg -i "input.mkv" -i "audio.m4a" -c copy -map 0:v -map 1:a "output.mp4" || ( echo fail to mux & goto exit )
del "audio.m4a"
:exit
pause[/syntax]中間文件只有audio.m4a,成功自動刪除
當然這樣的話最好ffmpeg出output.mkv而不是output.mp4,不然因為mkv的timestamp低精度問題,生成的mp4是有fps jitter的,還是需要用timelineeditor之類修正一下,或者需要在第一步出一個.264的中間文件來muxer混流時指定fps,反正都是mkv->mp4過程必要的東西,和這個主題沒關係就不在這裡贅述了…
代码: 全选
# timecode format v1
Assume 24.390244
0,0,23.809524
1,1,24.390244
2,4,23.809524
5,5,24.390244
6,7,23.809524
8,8,24.390244
9,11,23.809524
竟然是这个问题。。。我一直以为是IOS太老。。。06_taro 写了:不是mp4格式太新的問題,mp4v2的兼容性很高幾乎沒啥不支持的,mp4box自己有bug罷了…