我无法将ffmpeg
编码的 libx264 视频放入 .mp4 容器中,以便与 media9 和 beamer 配合使用。pdf 是使用 pdfLaTeX 创建的。这似乎是某种 ffmpeg 问题,因为以下工作正常:
- media9 包中的 random.mp4 可以工作
.flv 默认也是这样,
ffmpeg
虽然视频质量自然不是很好ffmpeg -i Test.mp4 -sameq Test.flv
我使用 ffmpeg 编码的任何视频
ffmpeg -i EB_%03d.png -c:v libx264 -x264opts keyint=30 -r 30 -b:v 1000k -s 640x512 Test.mp4
在 VLC 等平台上播放无瑕疵(虽然我在 pdf 中看到了时长条,但没有看到视频)。ffmpeg -i Test.mp4
视频流的收益
Stream #0:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p, 640x512, 1021 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc
稍有不同ffmpeg -i random.mp4
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 320x240 [SAR 1:1 DAR 4:3], 170 kb/s, 30 fps, 30 tbr, 30 tbn, 60 tbc
输出自ffmpeg
ffmpeg version 2.0.2 Copyright (c) 2000-2013 the FFmpeg developers
built on Oct 19 2013 08:34:03 with gcc 4.7 (SUSE Linux)
configuration: --shlibdir=/usr/lib --prefix=/usr --mandir=/usr/share/man
--libdir=/usr/lib --enable-shared --disable-static --enable-debug --disable-stripping
--extra-cflags='-fomit-frame-pointer -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2
-fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -I/usr/include/gsm' --enable-gpl --enable-x11grab --enable-version3
--enable-pthreads --enable-avfilter --enable-libpulse --enable-libvpx --enable-libopus
--enable-libass --enable-libmp3lame --enable-libvorbis --enable-libtheora --enable-libspeex
--enable-libxvid --enable-libx264 --enable-libschroedinger --enable-libgsm --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-postproc --enable-libdc1394 --enable-librtmp --enable-libfreetype
--enable-avresample --enable-libtwolame --enable-libvo-aacenc
libavutil 52. 38.100 / 52. 38.100
libavcodec 55. 18.102 / 55. 18.102
libavformat 55. 12.100 / 55. 12.100
libavdevice 55. 3.100 / 55. 3.100
libavfilter 3. 79.101 / 3. 79.101
libavresample 1. 1. 0 / 1. 1. 0
libswscale 2. 3.100 / 2. 3.100
libswresample 0. 17.102 / 0. 17.102
libpostproc 52. 3.100 / 52. 3.100
media9 的代码片段
\begin{frame}
\frametitle{Here should be a .mp4 video}
\framesubtitle{Apparently, something is wrong with my x264 codec}
\includemedia[
width=3.5in,height=2.8in,
activate=pageopen,
addresource=Figures/Test.mp4,
transparent,
flashvars={
source=Figures/Test.mp4&
autoPlay=true&
loop=true&
scaleMode=letterbox
}
]{\includegraphics{Figures/EB_001}}{VPlayer.swf}
\end{frame}
有人有想法吗?
答案1
更新
libx264
使用ffmpeg
/选择正确的选项avconv
有点棘手。
以下ffmpeg
命令行应该生成可用的视频文件(根据需要调整帧-r ...
和关键帧速率):-g ...
ffmpeg -i <input> -vf scale="trunc(iw/2)*2:trunc(ih/2)*2" -c:v libx264 -profile:v high -pix_fmt yuv420p -g 25 -r 25 output.mp4
<input>
被要转码的视频文件替换,或者带有通配符的 PNG/JPEG/... 文件序列,例如frame-%d.png
编号文件等frame-0.png
。frame-1.png
如果安装了后者,则替换ffmpeg
为。两者共享相同的选项。avconv