Eu tenho um vídeo que é originado de um telefone e que é reproduzido sem problemas em um aparelho de TV da Thomson (via USB). Os detalhes do vídeo são os seguintes:
> avprobe 20170904_065655.mp4
avprobe version 11.3-6:11.3-1~trusty, Copyright (c) 2007-2014 the Libav developers
built on Apr 13 2015 22:25:55 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '20170904_065655.mp4':
Metadata:
major_brand : mp42
minor_version : 0
compatible_brands: isommp42
creation_time : 2017-09-04 04:58:01
Duration: 00:01:05.34, start: 0.000000, bitrate: 17094 kb/s
Stream #0.0(eng): Video: h264 (High), yuv420p, 1920x1080, 17017 kb/s, 30 fps, 90k tbn (default)
Metadata:
creation_time : 2017-09-04 04:58:01
Side data:
displaymatrix: rotation of -90.00 degrees
Stream #0.1(eng): Audio: aac, 48000 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
creation_time : 2017-09-04 04:58:01
# avprobe output
O vídeo é girado 90 no sentido anti-horário. Portanto, como apontado aqui , estou tentando a seguinte linha de comando para girar o vídeo 90 graus no sentido horário:
ffmpeg -i 20170904_065655.mp4 -vf "transpose=1" test.mp4
que, infelizmente, gira o vídeo em 180 graus. Há algo de errado com esse comando para girar o vídeo?
De qualquer forma, consegui girar o vídeo usando avidemux
, mas o novo arquivo de vídeo salvo ( rotated.mp4
) não pôde ser reproduzido no aparelho de TV ('Formato de vídeo não suportado'). Eu tentei converter o arquivo em formatos diferentes usando comandos como
avconv -i rotated.mp4 -c:v h264 -q:v 3 -c:a libmp3lame out.avi
avconv -i rotated.mp4 -c:v mpeg1video -q:v 3 -c:a libmp3lame out.avi
avconv -i rotated.mp4 -r 25 -vb 20M -crf 20 output.avi
avconv -i rotated.mp4 -vcodec libx264 -acodec aac -strict -2 -b:a 384k output.mp4
Mas nada disso funcionou. o que estou perdendo? Ou há uma maneira de girar o vídeo na linha de comando sem alterar o formato / codificação atual?
O avprobe
de rotated.mp4
é
avprobe version 11.3-6:11.3-1~trusty, Copyright (c) 2007-2014 the Libav developers
built on Apr 13 2015 22:25:55 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
Input #0, avi, from 'rotated.mp4':
Duration: 00:00:30.77, start: 0.000000, bitrate: 6728 kb/s
Stream #0.0: Video: h264 (High), yuv420p, 1080x1920 [PAR 1:1 DAR 9:16], 30 fps, 30.02 tbn, 60.04 tbc
Stream #0.1: Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
Usando o ffmpeg de aqui , a saída avprobe
é a seguinte, depois de aplicar o método de 'LordNeckbeard' para o rotated.mp4
:
avprobe version 11.3-6:11.3-1~trusty, Copyright (c) 2007-2014 the Libav developers
built on Apr 13 2015 22:25:55 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'output.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf57.82.104
Duration: 00:00:30.86, start: 0.000000, bitrate: 10397 kb/s
Stream #0.0(und): Video: h264 (Constrained Baseline), yuv420p, 1080x1920 [PAR 1:1 DAR 9:16], 8860 kb/s, 30 fps, 15360 tbn, 60 tbc (default)
Stream #0.1(und): Audio: [1][0][0][0] / 0x0001, 48000 Hz, 2 channels (default)
Unsupported codec with id 0 for input stream 1
# avprobe output
e nem o áudio nem o vídeo são suportados agora ...