我正在使用 ffmpeg 从 DVB-S 卡记录的 MPEG 传输流文件中提取音频。命令:
ffmpeg -i video.ts -vn audio.wav
源文件似乎已损坏。我注意到腐败不时发生,特别是对于超过 1 小时的视频。我有这样的错误:
[mp2 @ 0x1bb5500] Header missing
Error while decoding stream #0:1
[mpegts @ 0x17eaf40] Continuity check failed for pid 5261 expected 2 got 6
问题是生成的
audio.wav
比源视频短(相应地为 40m33s 和 40m59s)。 我正在寻找在生成的音频文件中保留原始长度的方法。 我尝试了最近Windows下的ffmpeg和Ubuntu下的avconv,输出格式为MP3和WAV。对于每种情况,我都得到了相同的结果。
最佳答案
我没有发现是否可以使用 ffmpeg 来做到这一点,但是我发现了 ProjectX——一个试图修复损坏的 TS 流的工具。网址:http://project-x.sourceforge.net/
和:
java -jar ProjectX.jar -demux my_video.ts
流被解复用为保证具有相同长度的音频和视频文件。我只是使用 ffmpeg 将它们混合回去。
关于audio - 从传输流中提取音频并保留长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33740687/