来自相机的H.264视频文件大小远大于x264输出



我有一台支持h264协议的UVC相机。当我们列出所有支持的格式时,我们可以看到下面列出的h264。

msm8909:/data # ./ffmpeg -f v4l2 -list_formats all -i /dev/video1
ffmpeg version N-53546-g5eb4405fc5-static https://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libfribidi --enable-libass --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libxml2 --enable-libxvid --enable-libzimg
libavutil      56. 56.100 / 56. 56.100
libavcodec     58. 97.100 / 58. 97.100
libavformat    58. 49.100 / 58. 49.100
libavdevice    58. 11.101 / 58. 11.101
libavfilter     7. 87.100 /  7. 87.100
libswscale      5.  8.100 /  5.  8.100
libswresample   3.  8.100 /  3.  8.100
libpostproc    55.  8.100 / 55.  8.100
[video4linux2,v4l2 @ 0x4649140] Compressed:        h264 :                H.264 : 1920x1080 1280x720 640x480 320x240
[video4linux2,v4l2 @ 0x4649140] Compressed:       mjpeg :                MJPEG : 1920x1080 1280x720 640x480 320x240

我正在运行ffmpeg cmd将UVC相机视频录制到本地设备。

ffmpeg -f v4l2 -input_format h264 -framerate 30 -video_size 1280*720 -i /dev/video1 -c copy /sdcard/Movies/output.mkv

视频大小比运行以下命令大得多:

ffmpeg -f v4l2 -input_format mjpeg -framerate 30 -video_size 1280*720 -i /dev/video1 -c:v libx264 -vf format=yuv420p /sdcard/Movies/output.mp4

我想相机已经支持h264协议了。因此,我不需要重新编码到264格式。然而,视频大小看起来不像H264编码的视频。

并非所有H.264编码器都是相等的

x264是一种非常高效的H.264编码器,这意味着它在较低的比特率下提供了更高的质量。

你的相机有一个效率相对较低的H.264编码器。它在资源有限的小型硬件上进行了速度优化。因此,它无法做x264所能做的那些花哨的事情。结果是对于类似的质量,比特率要高得多。

最新更新