ffmpeg简单使用小记
補充一下 第二個命令好像不是預期效果
2020-04-03
遇到一個視頻 a.mp4
使用 .\ffmpeg.exe -i a.mp4 得出的視頻信息是這樣的
可以看到 有個
Metadata:rotate : 270有這個參數, 但是播放視頻的時候視頻是正常的。但是使用ffmpeg對a.mp4進行切片操作,產生的 ts切片就是旋轉了的
.\ffmpeg.exe -i .\a.mp4 -c copy -y -f hls -hls_time 10 .\s.m3u8以上這個切片命令是帶了 -c copy的,這樣不會對音視頻進行重新編碼,速度很快
通過對比,是順時針旋轉了90度的。
那如何讓切片 不出現這種旋轉的情況呢?
(補充:如果切片的時候 去掉 -c copy 就不會出現旋轉的情況,但是這時候速度會很慢,因為對音視頻進行了從新編碼)
通過以下這個命令是不可以的,只是以源視頻的角度逆時針轉了90度。
.\ffmpeg.exe -i a.mp4 -vf "transpose=2" -y -f hls -hls_time 10 .\s.m3u8經過嘗試發現可以這樣:
第一步 通過以下命令,產生一個新視頻, oa.mp4
查看這個視頻的信息
.\ffmpeg.exe -i oa.mp4 Metadata:major_brand : isomminor_version : 512compatible_brands: isomiso2avc1mp41encoder : Lavf58.41.100Duration: 00:03:27.75, start: 0.000000, bitrate: 581 kb/sStream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuvj420p(pc, bt709/bt709/iec61966-2-1), 272x480, 469 kb/s, 30.55 fps, 60 tbr, 19200 tbn, 38400 tbc (default)Metadata:handler_name : Core Media VideoStream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 102 kb/s (default)Metadata:handler_name : Core Media Audio第二步,以這個oa.mp4視頻進行切片操作
.\ffmpeg.exe -i oa.mp4 -vf "transpose=2" -y -f hls -hls_time 10 .\s.m3u8(切實這個操作速度也是比較慢,因為參數不能帶 -c copy)發現切出來的ts視頻, 是這樣
這樣就按照源視頻播放的角度,切成了相應的ts切片(其實這樣速度也是比較慢,這樣操作只是熟悉下ffmpeg的使用, 其實 直接對源視頻 進行切片去掉-c copy )
可以考慮將 ts切片后的視頻,合并保存,用來替換源視頻
-----分割線-----
拓展下,對另外一個b.mp4視頻進行試驗:
第一步
查看視頻信息 ffmpeg -i b.mp4 ,(這是一個正常的視頻,沒有rotate參數,切片操作也不會出現旋轉)
第二步
修改視頻的 rotate參數 , 這里改為90。
(不明白為什么改為90后,查看視頻信息 rotate 為270)
可以發現,新的ob.mp4 在原來基礎上逆時針旋轉了90度。
這時在查看ob.mp4的視頻信息
這時候再對 ob.mp4視頻進行切片
.\ffmpeg.exe -i ob.mp4 -c copy -y -f hls -hls_time 10 .\s.m3u8 同樣 產生的ts角度與 ob.mp4并不一致,而是與b.mp4保持一致 .\ffmpeg.exe -i ob.mp4 -y -f hls -hls_time 10 .\s.m3u8 同樣 產生的ts角度與 ob.mp4一致總結: 視頻 X 信息中含有一下信息的
Duration: 00:03:27.72, start: 0.000000, bitrate: 577 kb/sStream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 102 kb/s (default)Metadata:creation_time : 2019-11-27T07:00:13.000000Zhandler_name : Core Media AudioStream #0:1(und): Video: h264 (Main) (avc1 / 0x31637661), yuvj420p(pc, bt709/bt709/iec61966-2-1), 272x480, 469 kb/s, 30.55 fps, 60 tbr, 600 tbn, 1200 tbc (default)Metadata:rotate : 270creation_time : 2019-11-27T07:00:13.000000Zhandler_name : Core Media VideoSide data:displaymatrix: rotation of 90.00 degrees進行 切片的時候(參數如果帶有 -c copy),產生的ts角度與X并不一樣,應該是 與 X 之前的 源視頻一樣(就是沒有設置rotate參數的源視頻)
如果去掉 -c copy參數,產生的ts的角度與X一樣,
這時候可以考慮實際情況將 ts 合并為新的視頻文件,用以替換X
對ffmpeg初步使用,并不熟悉,還望指正。
-----分割線------
附上旋轉 、翻轉的一些參數
參考鏈接:
https://www.5yun.org/ffmpeg-xuan-zhuan-shi-pin-hua-mian-can-shu.html
總結
以上是生活随笔為你收集整理的ffmpeg简单使用小记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dnf45级没有假紫防具吗
- 下一篇: msyql 禁止远程访问