FFMPEG将不正确的mp4转换为ts
我在h264有一个video.MOV 当我使用-c:v copy将此视频转换为.mp4时,一切都正常FFMPEG将不正确的mp4转换为ts,ffmpeg,Ffmpeg,我在h264有一个video.MOV 当我使用-c:v copy将此视频转换为.mp4时,一切都正常 ffmpeg -i video.mp4 -c:v copy -c:a copy output.mp4 但如果我用相同的-c:v拷贝转换成.ts,我会收到旋转的视频 ffmpeg -i video.mp4 -c:v copy -c:a copy output.ts // output is rotaed...WTF? 如果我指定-c:v libx264-all也可以 ffmpeg -i vid
ffmpeg -i video.mp4 -c:v copy -c:a copy output.mp4
但如果我用相同的-c:v拷贝转换成.ts,我会收到旋转的视频
ffmpeg -i video.mp4 -c:v copy -c:a copy output.ts // output is rotaed...WTF?
如果我指定-c:v libx264-all也可以
ffmpeg -i video.mp4 -c:libx264 -c:a copy output.ts
此命令的输出包含预期信息:
ffmpeg ffmpeg -i video.MOV -c:v copy -c:a copy output.ts
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.MOV':
....
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 15633 kb/s, 29.97 fps, 29.97 tbr, 600 tbn, 1200 tbc (default)
Metadata:
rotate : 90
...
encoder : H.264
Side data:
displaymatrix: rotation of -90.00 degrees
...
Output #0, segment, to 'output.ts':
...
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, q=2-31, 15633 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 600 tbc (default)
Metadata
rotate : 90
...
encoder : H.264
Side data:
displaymatrix: rotation of -90.00 degrees
我收到几乎相同的信息,而转换到mp4,但在这里一切都是好的,并没有差异,在轮换时,在球员
那么转换成ts有什么问题呢?
最终目标是使用ts片段将mov文件分割为m3u8播放列表,这里也有相同的问题,因此我提供了更简单的示例。视频是以纵向/垂直模式录制的,这与手机用户通常录制的一样 手机传感器仍然记录1920x1080,但添加了元数据,指示播放器在播放时将视频旋转90度,因此它以预期方向播放1080x1920 TS muxer可能不支持旋转元数据(我没有验证) 您可能需要重新编码<代码>ffmpeg在重新编码时会自动旋转,这就是命令#3起作用的原因。对于M3U8来说,重新编码并不是一个坏主意,因为手机上的编码器可能效率低下,并且使用libx264可以显著节省文件大小,但不会造成太多明显的损失