我有一个.mp4视频,它记录在iphone4s.This视频文件中包含'Rotate - 180'元数据。
当我使用ffmpeg将.mp4文件转换为.ts时。我丢失了'旋转'元标记。
我使用的ffmpeg命令如下所示。
ffmpeg -i input_file.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb output_file.ts
有没有人知道如何将'旋转'元数据设置为.ts文件?
或
将输入.mp4文件中的所有元数据复制到输出.ts文件
的任何其他方法谢谢
答案 0 :(得分:2)
使用ffmpeg将旋转元数据添加到.ts文件似乎没什么用。只有重新编码才有效。
我的输入文件的旋转值为90 终端命令:
./ ffmpeg -i input_file.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
流#0:1(eng):音频:aac(mp4a / 0x6134706D),48000 Hz,立体声,fltp,121 kb / s
元数据:
creation_time: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 rotate = 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度CW旋转)
./ ffmpeg -y -i input_file.mp4 -vf“transpose = 1”output_file.ts