Linux - ffmpeg 3.4.6 与 4.2.1 - 带有 Tee(记录和流)的 bash 脚本在旧版本中运行得很好 - 新版本需要改变啥?

Posted

技术标签:

【中文标题】Linux - ffmpeg 3.4.6 与 4.2.1 - 带有 Tee(记录和流)的 bash 脚本在旧版本中运行得很好 - 新版本需要改变啥?【英文标题】:Linux - ffmpeg 3.4.6 vs. 4.2.1 - bash script with Tee (record & stream) runs in older version just fine - what needs to change for new version?Linux - ffmpeg 3.4.6 与 4.2.1 - 带有 Tee(记录和流)的 bash 脚本在旧版本中运行得很好 - 新版本需要改变什么? 【发布时间】:2020-11-09 05:58:40 【问题描述】:

感谢您阅读我的帖子。我有一个我测试过的 bash 脚本,它运行得很好;尽管我将脚本放入与测试计算机相同的硬件中,但我忘记了目标计算机将具有更新版本的 ffmpeg。应该很简单。我正在通过 UDP 拆分信号、记录和流式传输。这是脚本,在 ffmpeg 3.4.6 上运行得很好:

ffmpeg -f v4l2 -i /dev/video0 -t 00:30:00 -vf "drawtext=fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf:text='%localtime\:%T':x=20:y=20:fontcolor=white" \
-profile:v high -pix_fmt yuvj420p -level:v 4.1 -preset ultrafast -tune \
zerolatency -vcodec libx264 -r 15 -b:v 512k -s 960x720 -f mpegts -flush_packets 0 \
-f tee -map 0:v "/media/dkm/video_usb/videos/video_$(date +%Y-%m-%d_%H.%M.%S).mkv|[f=mpegts]udp://192.168.0.19:5000?pkt_size=1316"

我可以尝试降级,但这似乎不对,因为那台计算机运行的是 Linux Mint 19.2,而最初的测试计算机是 Ubuntu 18.4 LTS。我需要为 v. 4.2.1 更改一些基本内容吗?

我希望这是一个快速修复,因为它在旧版本中运行,但我已经学会不要对这些事情抱有希望。任何帮助,将不胜感激。我仔细阅读了文档,但我没有看到任何显着的东西。提前致谢!

【问题讨论】:

错误是什么?显示完整的日志。 嗨。不确定完整的日志在哪里;我更感兴趣的是让某人阅读代码以查看任何被弃用的突出内容,等等。计算机已经重新投入使用,但我稍后会尝试发布错误——我所看到的似乎是样板。在以前的帖子中,我看到有些人对 ffmpeg 非常熟悉,以至于他们知道什么时候版本发生了变化并且出现了问题。不过,我认为我的问题很清楚:新版本需要更改什么?这不是很多代码。即使我从有限的曝光中认识到大部分这些东西,但我没有看到任何问题。谢谢! “日志”不是一个准确的术语,但用户往往比我询问运行时ffmpeg 输出的控制台输出时更容易理解它。查看控制台输出将使发现任何问题变得更加容易。 是的,控制台/终端错误对我来说更有意义,尽管有很多 Linux 应用程序似乎都有错误日志,如果你知道在哪里可以找到它们的话。 ;-) 【参考方案1】:
[tee @ 0x55f91e850f00] Slave 'video.mkv': error writing header: Invalid data found when processing input
[tee @ 0x55f91e850f00] Slave muxer #0 failed, aborting.

您需要添加-flags +global_header

【讨论】:

这似乎已经成功并回答了我的问题。我可以调整,但我没有你们中的一些人所做的深入了解。我在研究中看到了一些关于 +global_header 的内容,但其他人似乎认为没有必要。非常感谢。我发布的最后两个问题,我删除了,因为我最终找到了自己的答案,所以让我知道是否需要在此处添加一些内容以表扬你。再次感谢!

以上是关于Linux - ffmpeg 3.4.6 与 4.2.1 - 带有 Tee(记录和流)的 bash 脚本在旧版本中运行得很好 - 新版本需要改变啥?的主要内容,如果未能解决你的问题,请参考以下文章

kafka+zookeeper环境配置(linux环境单机版)

kafka+zookeeper环境配置(linux环境单机版)

在Mono / Linux中使用FFmpeg.Autogen 4.1.0.2时找不到Kernel32 https://github.com/Ruslan-B/FFmpeg.AutoGen/issues

【FFMPEG】NI Real time linux上安装ffmpeg

如何在Linux系统上安装Magento 2

win10编译ffmpeg