我有一个可以通过 gstreamer 播放的原始视频:
gst-launch-1.0 ... autovideoconvert ! autovideosink
我可以编码这个视频:
gst-launch-1.0 ... ! autovideoconvert ! x264enc ! h264parse ! mp4mux ! filesink location=a.mp4
我现在想把这个原始视频放在一个“无损”的 mp4 容器中,没有任何压缩。我怎样才能做到这一点?
我有一个可以通过 gstreamer 播放的原始视频:
gst-launch-1.0 ... autovideoconvert ! autovideosink
我可以编码这个视频:
gst-launch-1.0 ... ! autovideoconvert ! x264enc ! h264parse ! mp4mux ! filesink location=a.mp4
我现在想把这个原始视频放在一个“无损”的 mp4 容器中,没有任何压缩。我怎样才能做到这一点?
我不认为我可以使用 mp4mux 但 qtmux 接受 raw-uyvy。以下作品:
gst-launch-1.0 ... ! autovideoconvert ! "video/x-raw,format=(string)UYVY" ! qtmux ! filesink location=a.mov
你在你的问题中回答了。不要压缩
gst-launch-1.0 ... !自动视频转换!mp4 多路复用器!文件接收器位置=a.mp4
但是你知道,如果没有压缩,这个文件会很大(GBytes)。
有时源数据不适合重新混合,但如果它是这样的管道应该可以工作:
gst-launch-1.0 filesrc 位置=...![解复用器]!h264解析!qtmux!文件接收器位置=...
h264 数据具有不同的“流格式”和“对齐方式”。流格式为 avc、avc3 和字节流。可能的对齐方式是 au 和 nal。不同的混合器采用不同的组合。h264parse 将在必要时进行该转换。
并且重新迭代,有时源数据将无法重新混合到所需的容器中。这取决于很多因素。