Camera recording broken video after 4 GiB file size (Sailfish OS 2.0.4.14)
I happily tried the new support for writing videos to the sd card with Sailfish 2.0.4.14 on my Jolla phone. Earlier, recording video to the internal storage resulted in a bricked (rescued via system image provided by kind fellow Jolla users) device as the btrfs manged to amalgate system files with the (corrupted) video file. So now, armed with a 32 GiB sd card formatted with ext4, I hoped to be finally ready to simply place my Jolla somewhere and record things without stupid arbitrary limits and without danger for the operating system.
It turns out that I still cannot just let the camera roll: I recorded for around 2.5 hours, got a 12 GiB file. Too bad that file fails to play after around 50 minutes in, also on a PC after copying. Ffmpeg says this:
frame=79103 fps=1502 q=-1.0 size= 3862217kB time=00:48:03.00 bitrate=10974.4kbits/s speed=54.7x
frame=80029 fps=1505 q=-1.0 size= 3907406kB time=00:48:34.66 bitrate=10982.2kbits/s speed=54.8x
frame=80939 fps=1508 q=-1.0 size= 3951920kB time=00:49:06.65 bitrate=10986.8kbits/s speed=54.9x
frame=82067 fps=1515 q=-1.0 size= 4006951kB time=00:49:45.21 bitrate=10995.8kbits/s speed=55.1x
frame=83111 fps=1520 q=-1.0 size= 4057975kB time=00:50:22.36 bitrate=10999.0kbits/s speed=55.3x
frame=84090 fps=1524 q=-1.0 size= 4105741kB time=00:50:55.68 bitrate=11007.1kbits/s speed=55.4x
[NULL @ 0x1db69e0] Failed to open bitstream filter h264_mp4toannexb for stream 0 with codec copy: Invalid argument
[NULL @ 0x1db69e0] Failed to open bitstream filter h264_mp4toannexb for stream 0 with codec copy: Invalid argument
[NULL @ 0x1db69e0] Failed to open bitstream filter h264_mp4toannexb for stream 0 with codec copy: Invalid argument
[NULL @ 0x1db69e0] Failed to open bitstream filter h264_mp4toannexb for stream 0 with codec copy: Invalid argument
[NULL @ 0x1db69e0] Failed to open bitstream filter h264_mp4toannexb for stream 0 with codec copy: Invalid argument
Something is wrong in how the camera app stores the video. I've been told there is gstreamer used behind the scenes. Could this issue and patch be related?
- gstreamer bug: https://bugzilla.gnome.org/show_bug.cgi?id=741279
- commit: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=2505e343b1cb29541e60afa3418c21b08ded3981
Can someone confirm that this is what affects the Camera? Or is it an entirely different bug? So far I'm trying to figure out how to access the source rpm on my phone to check if the patch would apply.
The relevant versions of gstreamer are what should be normal for SFOS 2.0.4.14. especially gstreamer1.0-plugins-good-1.4.5+git9.1-1.6.1 .
you sure its ext4 and not fat32? :)
coderus ( 2016-11-22 10:55:42 +0200 )editGstreamer will be updated in Sailfish OS 2.0.5.6, which is now available for early access, so if you could test this again with the new version.
Keto ( 2016-11-22 13:29:32 +0200 )editOK, I tested the early access SFOS update. It seems to indeed fix this!
I set a high bitrate (using kimmoli's camera settings plugin) of 16 Mbps (even higher values make the camera app choke on writing) and recorded 73 minutes into a file of 6.5 GiB size. It seems to be wholly playable in the gallery. But there is still one bug, hopefully without consequence: The details show a file size of -170242465.
I am astonished that there was a 32 bit integer used for indicating the size of video files. I hope this little bug does not have further consequences … but it would nevertheless be nice if it could be fixed before official release.
Once that issue is settled, I'd consider accepting an answer of "fixed in OS 2.0.5.6".
mobilthor ( 2016-11-22 18:44:14 +0200 )editCan you check what
says about the fileSize?
Keto ( 2016-11-22 20:11:03 +0200 )editWell, first: tracker-info complains that it does not exist anymore and that I shall call it
tracker info
now.Second: The size there looks OK, 6887510327. So it really is only a display issue in the video properties.
mobilthor ( 2016-11-22 20:22:38 +0200 )edit