有谁可以建议如何从HLS流构造MP4文件(与您通常想要的相反)?假设我有m3u8 --有没有一种使用FFMPEG或其他工具获得单个MP4的简单方法?
发布于 2015-10-14 04:12:18
ffmpeg -i in.m3u8 -acodec copy -vcodec copy out.mp4
对于AAC音频,您还需要添加比特ststream过滤器。(感谢@aergistal指出)
ffmpeg -i in.m3u8 -acodec copy -bsf:a aac_adtstoasc -vcodec copy out.mp4
发布于 2017-07-14 17:45:08
将HLS转换为MP4的另一种方法是使用VLC Player。您可以通过接口和命令行进行转换。您可以简单地运行一个包含以下行的.bat文件:
chcp 65001
"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" http://cdn.haramain.global/vods3/_definst_/mp4:amazons3/akra/programlar/yeni/335/c07f21e3-a313-4e8d-b594-403ddefbf11f.mp4/playlist.m3u8 --sout "#transcode{vcodec=none,acodec=mp3,ab=70,channels=2,samplerate=44100}:std{access=file{no-overwrite},mux=mp3,dst='C:\Users\aidata\Desktop\Akra FM\13.07.2013 - Karagöz - Bilmecesi.mp3'}" vlc://quit
"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" http://cdn.haramain.global/vods3/_definst_/mp4:amazons3/akra/programlar/yeni/335/dcb6754a-49f1-4517-bfe4-3864942f63c8.mp4/playlist.m3u8 --sout "#transcode{vcodec=none,acodec=mp3,ab=70,channels=2,samplerate=44100}:std{access=file{no-overwrite},mux=mp3,dst='C:\Users\aidata\Desktop\Akra FM\12.07.2013 - Nasreddin Hoca - Köyün Eseği.mp3'}" vlc://quit此批处理脚本可将两个文件相继转换。如果您已将这些命令粘贴到cmd.exe中,则所有转换将同时开始。
现在让我解释一下代码。chcp 65001行允许您在目标文件名中使用unicode字符。以下代码行由四个部分组成。
"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"这是VLC播放器的路径。请在安装VLC player后进行验证。
http://cdn.haramain.global/vods3/_definst_/mp4:amazons3/akra/programlar/yeni/335/c07f21e3-a313-4e8d-b594-403ddefbf11f.mp4/playlist.m3u8这是一个示例HLS文件。我不知道如果你把这个链接放在双引号里会发生什么。
--sout "#transcode{vcodec=none,acodec=mp3,ab=70,channels=2,samplerate=44100}:std{access=file{no-overwrite},mux=mp3,dst='C:\Users\aidata\Desktop\Akra FM\13.07.2013 - Karagöz - Bilmecesi.mp3'}"这是用于转换的VLC命令。您可以在VLC Documentation中找到更多选项
vlc://quit这将关闭VLC窗口。如果你不想让你的任务栏被VLC窗口填满,这是很有用的。没有办法堆叠播放列表中的转换顺序。您必须运行VLC,执行转换并关闭窗口。您也可以尝试在静默模式下运行VLC。或者,您可以拖动一个VLC窗口到屏幕的右下角,这样随后的闪烁窗口就不会打扰到您。
https://stackoverflow.com/questions/33108105
复制相似问题