avconv - 根据元数据自动改变方向
avconv - Automatically change orientation based on metadata
我是 运行 一个服务器应用程序,它接受来自 iOS 应用程序的视频上传。该应用程序将 .mov 上传到服务器,服务器将其转换为 .mp4(这是为了将来 Android 兼容性)。问题在于 .mov 格式在元数据中使用了一个旋转标志,该标志在转换时效果不佳,并且视频经常以错误的方向结束。我正在使用的命令,
avconv -i iosvideo.mov -c:v libx264 -b:v 1250k -vf scale=trunc(oh*a/2)*2:480,transpose=1 -metadata:s:v:0 rotate=0 -t 20 -c:a libvo_aacenc -b:a 192k output.mp4
似乎只能旋转一个固定的量。我将如何让 avconv 从 .mov 读取旋转标志并相应地旋转视频流?
Download or compile ffmpeg
的最新版本。它会自动旋转你的视频,所以你的命令看起来像:
ffmpeg -i input.mov -c:v libx264 -vf scale=-2:480 -t 20 -c:a libvo_aacenc -b:a 192k \
-movflags +faststart output.mp4
- 使用
-noautorotate
禁用此行为。
- 对于
scale
,您可以使用-2
代替trunc(oh*a/2)*2
。
- Use
-crf
instead of -b:v
。如果您必须针对特定的输出文件大小,则使用 -b:v
,但要进行两次;不是一个。默认为 -crf 23
.
libvo_aacenc
是一个糟糕的编码器。如果可能,请考虑使用替代方案 AAC encoder。
- 您可能需要
-movflags +faststart
以便视频可以在客户端完全下载之前开始播放。
- 我不确定这些信息是否适用于
avconv
;我不使用那个。
- 下次问超级用户;你的问题在这里是题外话,因为它与编程无关。 Stack Overflow 不是一般的计算帮助资源。
我是 运行 一个服务器应用程序,它接受来自 iOS 应用程序的视频上传。该应用程序将 .mov 上传到服务器,服务器将其转换为 .mp4(这是为了将来 Android 兼容性)。问题在于 .mov 格式在元数据中使用了一个旋转标志,该标志在转换时效果不佳,并且视频经常以错误的方向结束。我正在使用的命令,
avconv -i iosvideo.mov -c:v libx264 -b:v 1250k -vf scale=trunc(oh*a/2)*2:480,transpose=1 -metadata:s:v:0 rotate=0 -t 20 -c:a libvo_aacenc -b:a 192k output.mp4
似乎只能旋转一个固定的量。我将如何让 avconv 从 .mov 读取旋转标志并相应地旋转视频流?
Download or compile ffmpeg
的最新版本。它会自动旋转你的视频,所以你的命令看起来像:
ffmpeg -i input.mov -c:v libx264 -vf scale=-2:480 -t 20 -c:a libvo_aacenc -b:a 192k \
-movflags +faststart output.mp4
- 使用
-noautorotate
禁用此行为。 - 对于
scale
,您可以使用-2
代替trunc(oh*a/2)*2
。 - Use
-crf
instead of-b:v
。如果您必须针对特定的输出文件大小,则使用-b:v
,但要进行两次;不是一个。默认为-crf 23
. libvo_aacenc
是一个糟糕的编码器。如果可能,请考虑使用替代方案 AAC encoder。- 您可能需要
-movflags +faststart
以便视频可以在客户端完全下载之前开始播放。 - 我不确定这些信息是否适用于
avconv
;我不使用那个。 - 下次问超级用户;你的问题在这里是题外话,因为它与编程无关。 Stack Overflow 不是一般的计算帮助资源。