作者:UUUUUUUUUU8 | 来源:互联网 | 2023-01-30 09:43
我正在尝试从Windows(在.net核心)上移植一个实时电视转码应用程序来处理Raspberry Pi 3.
在引擎盖下,我使用ffmpeg从本地网络电视调谐器接收mpeg2流并吐出通过自定义http服务器公开的本地HLS流.
Linux上的FFmpeg配置为如下构建:
sudo ./configure --arch=armhf --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree --enable-mmal --enable-omx --enable-omx-rpi
在早期看到性能问题时,我试图将其简化为更简单的形式并开始使用DVD(也是mpeg2)中的VOB,请参考以下示例:
ffmpeg -i VTS_01_2.VOB -c:a aac -c:v h264_omx -b:v 256k -hls_time 3 -hls_wrap 30 "/media/usb1/foo.m3u8"
在几秒钟内,这不仅低于30 FPS,而且降至低十几岁.
以下运行速度很快,并且能够在指向电视流时保持运行...除了第一个ts文件之外的所有文件都将最终变为黑色(但带有音频)......事实证明前一行也遭受了损失从:
ffmpeg -i VTS_01_2.VOB -c:a copy -c:v h264_omx -b:v 256k -hls_time 3 -hls_wrap 30 "/media/usb1/foo.m3u8"
除了我选择的音频编解码器的奇怪之处(即接受已经存在的东西与选择其他东西)会使流速变慢,我还发现为了拥有可见的视频......我必须没有硬件辅助.
ffmpeg -i VTS_01_2.VOB -c:a aac -c:v libx264 -b:v 256k -hls_time 3 -hls_wrap 30 "/media/usb1/foo.m3u8"
和
ffmpeg -i VTS_01_2.VOB -c:a copy -c:v libx264 -b:v 256k -hls_time 3 -hls_wrap 30 "/media/usb1/foo.m3u8"
结果显示出来的视频......以及良好的音频,除了两者在FPS方面都太慢以至于无法跟上直播电视流.
有什么我在这里缺少能够让ffmpeg能够处理将mpeg2流转换为h.264流...并且生成的文件有视频吗?
为了节省空间,我将控制台日志放在了pastebin上.
h264_omx:https:
//pastebin.com/GK3zN4aB libx264:https://pastebin.com/uEdCwk47
正如我想的那样,"[mpegts @ 0x2fe0be0] H.264比特流错误,缺少启动代码,大小082丢弃= 0速度= 3.07x"错误可能是相关的,但是当查看更长的会话时我们看不到它们正常(我认为)在后面的文件中删除整个视频流,这些文件的大小与第一个文件一致:https://pastebin.com/J1EzTqgK