我有一组 100 张 baer 图像(例如https://drive.google.com/file/d/1V8HwOuIo9PBX3ix0eKFQFGimskU_H0mN/view?usp=sharing)我需要执行以下操作
- 德巴尔
- 压缩到文件
.h264
为此,我使用两个命令
对于德拜耳
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
用于压缩
ffmpeg -framerate 30 -i D:\Buffer\res\result%7d.png -c:v hevc_nvenc -qp 0 D:\Buffer\res264\test5.h264 -hide_banner
它有效。现在我尝试连接这两个命令,这就是发生的事情
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
但我收到了这个错误
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!
怎么做才对?
不需要保存中间的png文件,如果以后还进视频,可以马上写视频:
PS 如果其中一位 ffmpeg 专家在这里查看,最好以某种方式将 debayerization 放入一个命令中,请参阅如何使用 FFMpeg 为图像制作 debayer?