使用ffmpeg旋转MP4视频

用户名

我有一个运行ubuntu的网络服务器,该服务器接受来自iPhone应用程序的视频。显然,由于视频是MOV文件,因此无法在该应用的Android版本上播放。我很容易使用ffmpeg将文件转换为MP4:

ffmpeg -i <input.mov> -vcodec copy -acodec copy <output.mp4>

这样,视频就可以在该应用的Android版本中播放,但是它们失去了旋转功能,只能在iOS和Android上横向播放。

现在,我尝试使用ffmpeg旋转视频,以便使用以下命令正确播放:

ffmpeg -i <input.mp4> -vf "transpose=1" <output.mp4>

但是输出的视频没有旋转。我尝试了使用ffmpeg进行旋转的各种方式,但均无效果。这些方法包括:

ffmpeg -i <input.mp4> -vcodec copy -acodec copy -vf "transpose=1" <output.mp4>
ffmpeg -i <input.mp4> -metadata:s:v:0 rotate=90 <output.mp4>

以及命令的各种组合,但是视频方向永远不会改变。

我觉得-vf无法正常工作很奇怪,因为上传后,服务器会使用以下命令生成缩略图:

ffmpeg -y -itsoffset -1 -i <input.mp4> -vcodec mjpeg -vframes 1 -vf "transpose=1" -an -f rawvideo <output>

效果非常好,并使缩略图朝向正确的方向。

在任何情况下,我都不会出现任何错误,所以我不确定发生了什么问题,只是视频无法正确旋转。

由于这需要自动完成,因此需要从命令行完成。

我只是尝试使用:

ffmpeg -i <input.mp4> -acodec copy -vcodec copy -vf "transpose=1" <output.mp4>

结果:

ffmpeg version 0.8.6-4:0.8.6-0ubuntu0.12.04.1, Copyright (c) 2000-2013 the Libav developers   built on Apr  2 2013 17:02:36 with gcc 4.6.3
*** THIS PROGRAM IS DEPRECATED *** This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.

Seems stream 0 codec frame rate differs from container frame rate:
1200.00 (1200/1) -> 29.97 (30000/1001) Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'media/test.mp4':   Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 2014-02-06 00:16:52
    date            : 2014-01-25T12:44:19-0800
    encoder         : Lavf53.21.1   Duration: 00:00:01.06, start: 0.000000, bitrate: 5391 kb/s
    Stream #0.0(und): Video: h264 (Main), yuv420p, 1280x720, 5489 kb/s, 29.95 fps, 29.97 tbr, 600 tbn, 1200 tbc
    Metadata:
      creation_time   : 2014-02-06 00:16:52
    Stream #0.1(und): Audio: aac, 44100 Hz, mono, s16, 57 kb/s
    Metadata:
      creation_time   : 2014-02-06 00:16:52 File 'media/temp.mp4' already exists. Overwrite ? [y/N] y Output #0, mp4, to 'media/temp.mp4':   Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 2014-02-06 00:16:52
    date            : 2014-01-25T12:44:19-0800
    encoder         : Lavf53.21.1
    Stream #0.0(und): Video: ![0][0][0] / 0x0021, yuv420p, 1280x720, q=2-31, 5489 kb/s, 600 tbn, 600 tbc
    Metadata:
      creation_time   : 2014-02-06 00:16:52
    Stream #0.1(und): Audio: aac, 44100 Hz, mono, 57 kb/s
    Metadata:
      creation_time   : 2014-02-06 00:16:52 Stream mapping:   Stream #0.0 -> #0.0   Stream #0.1 -> #0.1 Press ctrl-c to stop encoding frame=   31 fps=  0 q=-1.0 Lsize=     703kB time=1.00 bitrate=5739.6kbits/s     video:694kB audio:8kB global headers:0kB muxing overhead 0.267996%
slhck

您不是在使用FFmpeg的“真实” ffmpeg ,而是使用了ffmpegLibav调用的损坏程序

请下载最新的ffmpeg版本,然后重试。

另请参阅:谁能告诉我ffmpeg,libav和avconv之间的区别和关系?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用FFMPEG的MP4视频旋转

视频(MPG,MP4)的无损旋转?

使用FFmpeg模糊MP4视频部分x秒

使用ffmpeg将.mov视频转换为.mp4

使用 ffmpeg 从 mp4 视频中提取 Yuv 帧

如何使用ffmpeg php对mp4视频加水印

旋转mp4视频而无需重新编码

FFmpeg 命令将 MP4 文件旋转 90º

尝试使用ffmpeg合并两个mp4视频文件,但出现错误

使用ffmpeg分割mp4文件会导致黑色视频

如何通过仅使用ffmpeg编码连接点修剪mp4视频

如何使用ffmpeg获取mp4容器的视频流的偏移量?

使用FFMPEG命令从多个图像+音乐创建MP4视频

如何使用ffmpeg修复仅右耳发出声音的mp4视频?

每当音量为零时,如何使用ffmpeg分割mp4视频?

无法使用 ffmpeg 将在线 gif 转换为 mp4 视频

如何使用ffmpeg将webp图像转换为MP4视频

使用Red5通过ffmpeg和rtmp流mp4视频

从视频的特定时间开始,使用ffmpeg流mp4文件

使用ffmpeg删除.mp4视频顶部和底部黑色条

如何使用 ffmpeg 或 mencoder 将 mp4 视频转换 180 度

如何使用 ffmpeg 分割多个 mp4 视频?当前的解决方案太慢

ffmpeg-将mp4视频与wav音频合并

FFmpeg .avi 到 .mp4 视频转码 - Android

FFmpeg:如何制作MP4 CENC(通用加密)视频

连接mp4视频后的ffmpeg-python drawtext

如何使用ffmpeg从命令行参数将.MP4视频与.WAV音频组合在一起以创建新的.MP4视频?

使用 ffmpeg 批量转换 MP4

使用FFMPEG的Shell脚本转换为mp4会产生两次附加了.mp4扩展名的新视频