gstreamer - gstreamer 保存的文件没有音频
问题描述
我正在尝试使用此命令从流中创建多个文件,但它们没有音频播放,我认为 decodebin 应该处理它,我做错了什么?
gst-launch-1.0 -e filesrc location=video.mp4 ! queue ! decodebin ! queue ! videoconvert ! queue ! timeoverlay ! x264enc key-int-max=10 ! h264parse ! splitmuxsink location=videos/test%02d.mp4 max-size-time=1000000000000
解决方案
你为什么做出这样的假设来decodebin
处理它?decodebin
会将音轨解码为原始音频并公开音频垫。如果您不使用该垫,它将不会将自己放入文件中。
由于您转码,您也必须重新编码音频:
gst-launch-1.0 -e filesrc location=video.mp4 ! queue ! decodebin ! queue ! \
videoconvert ! queue ! timeoverlay ! x264enc key-int-max=10 ! h264parse ! \
splitmuxsink location=videos/test%02d.mp4 max-size-time=1000000000000 \
decodebin0. ! queue ! voaacenc ! aacparse ! splitmuxsink0.
如果您不想重新编码但通过音频decodebin
是错误的方式。parsebin
在这种情况下可能更合适。
推荐阅读
- python - 使用 Pandas 数据框查找不同小数位的值
- c# - 如何在我想要的 ASP.NET Core 2.0 中获取 DbContext 的实例?
- ruby - 为在 AWS Lambda 中运行的 Webscraping 优化 Ruby 代码
- angularjs - 在指令 angularJS 中调用自定义服务
- c++ - 这个表达式是左值还是右值?
- android - 反应本机提示用户从 App Store 下载应用程序
- android - 如何通过 AlarmManager 正确使用警报
- unity3d - Unity 测试广告突然停止在构建中运行,但在编辑器中运行没有任何错误
- javascript - 如何为表格中的每个 X 元素创建一个表格?
- elastic-stack - 为什么弹性堆栈 Helm 图表的 logstash pod 不断失败?