ffmpeg stdout 缺少字节
ffmpeg stdout missing bytes
初始数据:
ffmpeg 版本 2.7.2-static
使用 gcc 4.9.3 (Debian 4.9.3-1) 构建
配置:--enable-gpl --enable-version3 --disable-shared --disable-debug --enable-runtime-cpudetect --enable-libmp3lame --enable-libx264 --enable-libx265 - -enable-libwebp --enable-libspeex --enable-libvorbis --enable-libvpx --enable-libfreetype --enable-fontconfig --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb -- enable-libtheora --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-gray --enable-libopenjpeg --enable-libopus --enable-libass --enable-gnutls --enable-libvidstab --enable -libsoxr --cc=gcc-4.9
- video.mp4 文件是 31000079 字节
问题是:
cat video.mp4 | ffmpeg -i pipe: -v warning -vf scale=100:100 scaled_video.mp4
生成 755052 字节的文件
cat video.mp4 | ffmpeg -i pipe: -v warning -vf scale=100:100 -f h264 - > scaled_video.mp4
生成 252804 字节的文件
ffprobe显示初始文件视频流为h264
我看不到什么?:D
首先,你为什么用管道输入而不是 ffmpeg -i video.mp4
?
总之,不是你看不到,而是你听不到。
第一个命令使用默认的 ffmpeg 参数缩放视频并重新编码整个 MP4 文件,包括它可能具有的所有音轨。它会压缩你的文件。
您指定 -f h264
的第二条命令执行相同的操作,但仅输出 原始 H.264 视频流,不输出音频。生成的文件不是有效的 MP4,其扩展名应为 .h264
-f h264
用于获取原始 H.264 流。如果您想指定编解码器,请改用 -c:v libx264
。
初始数据:
ffmpeg 版本 2.7.2-static
使用 gcc 4.9.3 (Debian 4.9.3-1) 构建
配置:--enable-gpl --enable-version3 --disable-shared --disable-debug --enable-runtime-cpudetect --enable-libmp3lame --enable-libx264 --enable-libx265 - -enable-libwebp --enable-libspeex --enable-libvorbis --enable-libvpx --enable-libfreetype --enable-fontconfig --enable-libxvid --enable-libopencore-amrnb --enable-libopencore-amrwb -- enable-libtheora --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-gray --enable-libopenjpeg --enable-libopus --enable-libass --enable-gnutls --enable-libvidstab --enable -libsoxr --cc=gcc-4.9
- video.mp4 文件是 31000079 字节
问题是:
cat video.mp4 | ffmpeg -i pipe: -v warning -vf scale=100:100 scaled_video.mp4
生成 755052 字节的文件cat video.mp4 | ffmpeg -i pipe: -v warning -vf scale=100:100 -f h264 - > scaled_video.mp4
生成 252804 字节的文件
ffprobe显示初始文件视频流为h264
我看不到什么?:D
首先,你为什么用管道输入而不是 ffmpeg -i video.mp4
?
总之,不是你看不到,而是你听不到。
第一个命令使用默认的 ffmpeg 参数缩放视频并重新编码整个 MP4 文件,包括它可能具有的所有音轨。它会压缩你的文件。
您指定 -f h264
的第二条命令执行相同的操作,但仅输出 原始 H.264 视频流,不输出音频。生成的文件不是有效的 MP4,其扩展名应为 .h264
-f h264
用于获取原始 H.264 流。如果您想指定编解码器,请改用 -c:v libx264
。