使用 ffmpeg 将旋转元数据添加到 .ts 文件似乎没有任何作用。只有重新编码有效。
我的输入文件的旋转值为 90。
终端命令:
./ffmpeg -i 输入文件.mp4
元数据:
输入#0,mov,mp4,m4a,3gp,3g2,mj2,来自“input_file.mp4”:
元数据:
major_brand:
isom minor_version:0
compatible_brands:isom3gp4
creation_time:2013-08-27 21:25:13
持续时间:00: 00:21.33,开始:0.000000,比特率:16820 kb/s
流 #0:0(eng):视频:h264(高)(avc1 / 0x31637661),yuv420p,1920x1080,17011 kb/s,30 fps,30 tbr, 90k tbn,180k tbc
元数据:
旋转:90
creation_time:2013-08-27 21:25:13
handler_name:VideoHandle
Stream #0:1(eng):音频:aac (mp4a / 0x6134706D),48000 Hz,立体声,fltp, 121 kb/s
元数据:
创建时间:2013-08-27 21:25:13
handler_name:SoundHandle
以下尝试未获得要复制的旋转值:
./ffmpeg -y -i input_file.mp4 -vcodec copy -acodec copy -bsf h264_mp4toannexb output_file.ts
./ffmpeg -y -i input_file.mp4 -vcodec copy -acodec copy -bsf h264_mp4toannexb -metadata rotate=90 output_file.ts
/ /-------- 即使手动将元数据指定为第一个视频流也不起作用:------//
./ffmpeg -y -i input_file.mp4 -vcodec copy -acodec copy -bsf h264_mp4toannexb -metadata :s:v:0 旋转=90 output_file.ts
即使您可以手动注入元数据,例如:
./ffmpeg -y -i input_file.mp4 -vcodec copy -acodec copy -bsf h264_mp4toannexb -metadata TITLE='Test Title' output_file.ts
这确实有效,但需要重新编码,与上面的视频和音频编解码器复制相比,这确实效率低下。
(1 == 90 度顺时针旋转)
./ffmpeg -y -i input_file.mp4 -vf "transpose=1" output_file.ts