我已经成功地让 VLC 将 x264 编码文件从网络文件共享流式传输到旧的 chromecast (哪个我的不直接支持hevc / x265)使用以下命令。
vlc -vv --sout "#chromecast" --sout-chromecast-ip=192.168.1.111 --sout-chromecast-conversion-quality=0 --demux-filter=demux_chromecast "/home/vid/nfst/video1_x264.mp4"
我正在尝试对 HEVC / x265 文件执行相同的操作但看起来它需要在到达 chromecast 之前“实时”转码。有谁知道我如何使用命令行语法使用 VLC 来完成此操作?
笔记:我不想创建另一个单独的 x264 文件。我不想将 x265 文件“实时”转码为 x264 格式,并使用 VLC 在 chromecast 上以某种方式对其进行流式传输/播放。
PS:我尝试使用 VLC GUI 进行投射,但我的旧 chromecast 不支持 HEVC / x265 文件。文件中的音频确实可以播放,但 hevc / x265 视频在 chromecast 上仅显示为黑屏。
PPS:我正在使用运行 Ubuntu 18.04 64 位的 VLC 媒体播放器 3.0.7.1 Vetinari(修订版 3.0.7.1-0-gf3940db4af)。
答案1
我不知道你是否仍然需要它,但我只是在处理这个问题,也许它会对其他人有所帮助。
作为我的 sout 字符串,我使用:#transcode{venc=x264{preset=ultrafast},vcodec=h264,threads=1}:chromecast{ip=192.168.1.100,conversion-quality=0}
注意转码和 chromecast 之间的冒号。我对 VLC 或视频转码几乎一无所知,但这看起来有点像管道转码器输出到 chromecast 的东西。
一些观察
显然,它
venc=x264{preset=ultrafast}
使用我的 GPU 来帮助 CPU 进行转码。threads=1
是否存在这样的情况,即 CPU 未达到 100% 使用率。如果您有口吃问题,增加此值可能会有所帮助。使用 Intel i5 4590 和 RX580,在 Windows 10 上实时转码和投射 1080p HEVC H.265(40 分钟,1.04 GB 文件),平均 CPU 和 GPU 使用率分别为 40% 和 15%。
请注意,暂停或跳跃时间可能会出现问题。
答案2
您可以使用 ffmpeg 将视频转为 h264。
ffmpeg -i input.mp4 -c:v libx264 -preset slower -crf 28 -c:a copy -maxrate 320 -minrate 20 output.mp4
您可以更改 maxrate minrate 预设和 cRF 以获得良好的质量。
对于 720p,我建议最大速率为 1500-2500,具体取决于视频是否有大量运动。
对于 cRF 来说,质量越低,质量越好,但需要在合理的时间内完成更多的计算能力。