ffmpeg - 将metatag设置为.ts文件

时间:2013-07-24 08:36:02

标签: ffmpeg set metadata

我有一个.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文件

的任何其他方法

谢谢

1 个答案:

答案 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