Eu tenho tentado por semanas para incorporar alguns vídeos (criados com python-Matplotlib) na minha apresentação em Latex / Beamer, de acordo com os exemplos como este , que usa um pacote chamado media9
. A compilação de documentos não mostra erros, mas ainda assim não funciona.
Basicamente, ele usa um Flash player no PDF para reproduzir as coisas e, como tal, os vídeos que reproduzem são muito limitados (em termos de codecs suportados, extensões, etc.). Se eu seguir a documentação e converter um vídeo antigo para as especificações corretas, então funciona. No entanto, não consigo fazer funcionar para vídeos que estou criando atualmente e não posso dizer o que está causando essa diferença.
De acordo com a documentação :
Flash Player supports the efficient H.264 codec for video compression. MP4/H.264 video files can be encoded from existing video files and from numbered bitmap sequences using the ffmpeg (http://ffmpeg.org.) or avconv (http://libav.org.) command line tools. In order to allow for precise seeking within video files it is necessary to encode them with a sufficient number of key frames. The command line for recoding an existing video file video.avi into video.mp4 reads
ffmpeg -i video.avi -vf scale="trunc(iw/2)*2:trunc(ih/2)*2" -c:v libx264 -profile:v high -pix_fmt yuv420p -g 30 -r 30 video.mp4
Coisas que eu tentei:
Eu já tentei criar o vídeo do Matplotlib usando ffmpeg
com as características corretas ( -pix_fmt yuv420p -g 30 -r 30
, codec=libx264
e .mp4
extension). Isso não funcionou.
Em segundo lugar, tentei criar vídeos com diferentes codificações e extensões e, em seguida, usei a linha acima (fornecida pelo autor do pacote) para convertê-los. Mas isso também não funciona.
Neste ponto, não tenho ideia do que mais fazer. Tanto quanto eu sei, eu estou seguindo todos os pontos necessários colocados pelos documentos, mas aparentemente isso não é verdade e eu não consigo descobrir o que está faltando.
Veja um exemplo de um dos meus vídeos antigos que funcionam com ffmpeg -i
(depois de usar o comando acima):
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'convB_C250_txy0.mp4.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.83.100
Duration: 00:00:20.83, start: 0.000000, bitrate: 11867 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1080x840, 11864 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name : VideoHandler
E agora, um exemplo de vídeo que eu criei recentemente passou pelo mesmo comando, mas isso não funciona:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'convC1_old.mp4.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.83.100
Duration: 00:00:04.13, start: 0.000000, bitrate: 226 kb/s
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1080x840, 222 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
Metadata:
handler_name : VideoHandler
A única diferença que vejo em ambos é a taxa de bits, que não deve fazer diferença. Mas mesmo assim não consigo corresponder ao bitrate do novo vídeo com o antigo.
Há algo que estou sentindo falta aqui?