首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将两个ffmpeg查询合并到一个管道?

如何将两个ffmpeg查询合并到一个管道?
EN

Stack Overflow用户
提问于 2021-05-19 11:13:20
回答 1查看 214关注 0票数 0

我有一个序列(100个图像)(图像ex:https://drive.google.com/file/d/1V8HwOuIo9PBX3ix0eKFQFGimskU_H0mN/view?usp=sharing)的拜耳图像,我需要做的是

  1. 删除它们
  2. .h264文件

中压缩结果。

因此,我使用两个查询

脱膜剂

代码语言:javascript
复制
ffmpeg -y -i D:\Buffer\Bayer\Time%7d_img.bmp -vf format=gray -f rawvideo pipe: -hide_banner | ffmpeg -y -f rawvideo -pixel_format bayer_rggb8 -video_size 4104x3006 -i pipe: -frames 100 D:\Buffer\res\result%7d.png -hide_banner

和压缩

代码语言:javascript
复制
ffmpeg -framerate 30 -i D:\Buffer\res\result%7d.png -c:v hevc_nvenc -qp 0 D:\Buffer\res264\test5.h264 -hide_banner

我需要将这两个查询合并为一个,我试着这样做

代码语言:javascript
复制
ffmpeg -y -i D:\Buffer\Bayer\Time%7d_img.bmp -vf format=gray -f rawvideo pipe: -hide_banner | ffmpeg -y -f rawvideo -pixel_format bayer_rggb8 -video_size 4104x3006 pipe: -hide_banner | ffmpeg -c:v hevc_nvenc -qp 0 -i pipe D:\Buffer\res264\test5.h264 -hide_banner

但我在这里遇到了一个错误

代码语言:javascript
复制
Input #0, image2, from 'D:\Buffer\Bayer\Time%7d_img.bmp':
Output #0, rawvideo, to 'pipe:':  Duration:
00:00:40.0Output file #0 does not contain any stream0
, start: 0.000000, bitrate: N/AUnknown decoder 'hevc_nvenc'

    Stream #0:0: Video: bmp, pal8, 2464x2056, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (bmp (native) -> rawvideo (native))
Press [q] to stop, [?] for help
Output #0, rawvideo, to 'pipe:':
  Metadata:
    encoder         : Lavf58.29.100
    Stream #0:0: Video: rawvideo (Y800 / 0x30303859), gray, 2464x2056, q=2-31, 1013196 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc58.54.100 rawvideo
av_interleaved_write_frame(): Invalid argument
Error writing trailer of pipe:: Invalid argument
frame=    1 fps=0.0 q=-0.0 Lsize=    4947kB time=00:00:00.04 bitrate=1013196.8kbits/s speed=   2x
video:4947kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.000000%
Conversion failed!

我在这里做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-19 12:24:10

很少有人注意到:

不需要将帧转换为PNG first.

  • hevc_nvenc应用H.265编解码器,您正在使用.h264文件扩展名。

我尝试了result%07d.png

  • It,但是我得到了一个错误,因为分辨率太高了(对于H.264,NVIDIA应该是result%07d.png

  • It,建议选择像素格式(yuv420p或yuv444p)。

下面是语法:

代码语言:javascript
复制
ffmpeg -y -hide_banner -i Time%07d_img.bmp -vf format=gray -f rawvideo pipe: | ffmpeg -hide_banner -y -framerate 30 -f rawvideo -pixel_format bayer_rggb8 -video_size 4104x3006 -i pipe: -c:v hevc_nvenc -qp 0 -pix_fmt yuv444p test5.hevc
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67602142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档